diff --git a/package.json b/package.json index 122d90d..4cc0753 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "lint": "yarn eslint .", "lint-fix": "eslint . --fix", "prettier": "prettier '**/*.ts'", + "test": "graph test -v 0.6.0-rc.2", "prettier-write": "prettier --write '**/*.ts'" }, "devDependencies": { @@ -47,7 +48,8 @@ "eslint": "^7.2.0", "mustache": "^4.0.1", "prettier": "^2.0.5", - "typescript": "^3.9.3" + "typescript": "^3.9.3", + "matchstick-as": "0.6.0-beta.2" }, "author": "", "bugs": { diff --git a/schema.graphql b/schema.graphql index 56ceae8..627a563 100644 --- a/schema.graphql +++ b/schema.graphql @@ -3,7 +3,7 @@ Graph Network global parameters and contract addresses """ type GraphNetwork @entity { "ID is set to 1" - id: ID! + id: Bytes! "Ratio of max staked delegation tokens to indexers stake that earns rewards" delegationRatio: Int! @@ -89,7 +89,7 @@ delegating, curating, and indexing. """ type GraphAccount @entity { "Graph account ID" - id: ID! + id: Bytes! "All names this graph account has claimed from all name systems" names: [GraphAccountName!]! @derivedFrom(field: "graphAccount") @@ -154,7 +154,7 @@ type GraphAccount @entity { type GraphAccountMetadata @entity(immutable:true) { "IPFS hash with account metadata details" - id: ID! + id: Bytes! "Account that reference this metadata file. For compatibility purposes. For the full list use graphAccounts" graphAccount: GraphAccount @derivedFrom(field:"metadata") "Accounts that reference this metadata file" @@ -205,7 +205,7 @@ subgraph is stored on IPFS. """ type Subgraph @entity { "Subgraph ID - which is derived from the Organization/Individual graph accountID" - id: ID! + id: Bytes! "Graph account that owns this subgraph" owner: GraphAccount! @@ -249,12 +249,9 @@ type Subgraph @entity { "Subgraph number used to create the ID. Only available for Subgraphs created pre-migration" subgraphNumber: BigInt - "Version of the entity. Subgraph entities are changing the way their ID is generated when the new GNS v2 rolls out so we need to differnetiate them" + "[DEPRECATED] Version of the entity. Subgraph entities are changing the way their ID is generated when the new GNS v2 rolls out so we need to differnetiate them" entityVersion: Int! - "Subgraph entities might have 'duplicate' entities so that old IDs can be persisted and still queried properly. If that happens we have to link both duplicate entities to be able to update them properly." - linkedEntity: Subgraph - # Name curation data for bonding curve # Note that the Subgraphs V signal is actually stored in a Signal entity, which # considers the GNS as a Curator @@ -290,7 +287,7 @@ type Subgraph @entity { "Block number for the L1 -> L2 Transfer. Null if the transfer hasn't started yet" startedTransferToL2AtBlockNumber: BigInt "Transaction hash for the L1 -> L2 Transfer. Null if the transfer hasn't started yet" - startedTransferToL2AtTx: String + startedTransferToL2AtTx: Bytes "Whether the subgraph has been fully transferred from L1 to L2. Subgraphs published on L2 will have this as false unless they were published through a transfer" transferredToL2: Boolean! "Timestamp for the L1 -> L2 Transfer. Null if it's not fully transferred or if it's an L1 deployment" @@ -298,15 +295,15 @@ type Subgraph @entity { "Block number for the L1 -> L2 Transfer. Null if it's not fully transferred or if it's an L1 deployment" transferredToL2AtBlockNumber: BigInt "Transaction hash for the L1 -> L2 Transfer. Null if it's not fully transferred or if it's an L1 deployment" - transferredToL2AtTx: String + transferredToL2AtTx: Bytes "Amount of GRT transferred to L2" signalledTokensSentToL2: BigInt! "Amount of GRT received on L2" signalledTokensReceivedOnL2: BigInt! "ID of the subgraph on L2. Null if it's not transferred" - idOnL2: String + idOnL2: Bytes "ID of the subgraph on L1. Null if it's not transferred" - idOnL1: String + idOnL1: Bytes } """ @@ -319,7 +316,7 @@ just a counter than increases each time a new SubgraphVersion is created for a S """ type SubgraphVersion @entity { "Concatenation of subgraph, subgraph deployment, and version ID" - id: ID! + id: Bytes! "Subgraph of this version" subgraph: Subgraph! @@ -342,8 +339,6 @@ type SubgraphVersion @entity { # label: String! entityVersion: Int! - - linkedEntity: SubgraphVersion } """ @@ -355,7 +350,7 @@ related to a SubgraphVersion. """ type SubgraphDeployment @entity { "Subgraph Deployment ID. The IPFS hash with Qm removed to fit into 32 bytes" - id: ID! + id: Bytes! "The versions this subgraph deployment relates to" versions: [SubgraphVersion!]! @derivedFrom(field: "subgraphDeployment") @@ -428,7 +423,7 @@ type SubgraphDeployment @entity { "Block number for the L1 -> L2 Transfer. Null if it's not fully transferred or if it's an L1 deployment" transferredToL2AtBlockNumber: BigInt "Transaction hash for the L1 -> L2 Transfer. Null if it's not fully transferred or if it's an L1 deployment" - transferredToL2AtTx: String + transferredToL2AtTx: Bytes "Amount of GRT transferred to L2" signalledTokensSentToL2: BigInt! "Amount of GRT received on L2" @@ -440,7 +435,7 @@ Metadata for the Indexer along with parameters and staking data """ type Indexer @entity { "Eth address of Indexer" - id: ID! + id: Bytes! "Time this indexer was created" createdAt: Int! "Service registry URL for the indexer" @@ -510,6 +505,9 @@ type Indexer @entity { "Delegators to this Indexer" delegators: [DelegatedStake!]! @derivedFrom(field: "indexer") + "Delegator relation entities. For internal usage for performance reasons" + relations: [IndexerDelegatedStakeRelation!]! @derivedFrom(field: "indexer") + "CURRENT tokens delegated to the indexer" delegatedTokens: BigInt! @@ -563,19 +561,19 @@ type Indexer @entity { "Block number for the FIRST L1 -> L2 Transfer" firstTransferredToL2AtBlockNumber: BigInt "Transaction hash for the FIRST L1 -> L2 Transfer" - firstTransferredToL2AtTx: String + firstTransferredToL2AtTx: Bytes "Timestamp for the latest L1 -> L2 Transfer" lastTransferredToL2At: BigInt "Block number for the latest L1 -> L2 Transfer" lastTransferredToL2AtBlockNumber: BigInt "Transaction hash for the latest L1 -> L2 Transfer" - lastTransferredToL2AtTx: String + lastTransferredToL2AtTx: Bytes "Amount of GRT transferred to L2. Only visible from L1, as there's no events for it on L2" stakedTokensTransferredToL2: BigInt! "ID of the indexer on L2. Null if it's not transferred" - idOnL2: String + idOnL2: Bytes "ID of the indexer on L1. Null if it's not transferred" - idOnL1: String + idOnL1: Bytes } """ @@ -583,7 +581,7 @@ A state channel Allocation representing a single Indexer-SubgraphDeployment stak """ type Allocation @entity { "Channel Address" - id: ID! + id: Bytes! "Indexer of this allocation" indexer: Indexer! @@ -676,7 +674,7 @@ hence why they share the same IDs. """ type Pool @entity { "Epoch number of the pool" - id: ID! + id: Bytes! "Total effective allocation tokens from all allocations closed in this epoch" allocation: BigInt! @@ -699,7 +697,7 @@ Delegator with all their delegated stakes towards Indexers """ type Delegator @entity { "Delegator address" - id: ID! + id: Bytes! account: GraphAccount! defaultDisplayName: String @@ -762,7 +760,7 @@ Delegator stake for a single Indexer """ type DelegatedStake @entity { "Concatenation of Delegator address and Indexer address" - id: ID! + id: Bytes! "Index the stake is delegated to" indexer: Indexer! @@ -826,13 +824,13 @@ type DelegatedStake @entity { "Block number for the L1 -> L2 Transfer" transferredToL2AtBlockNumber: BigInt "Transaction hash for the L1 -> L2 Transfer" - transferredToL2AtTx: String + transferredToL2AtTx: Bytes "Amount of GRT transferred to L2. Only visible from L1, as there's no events for it on L2" stakedTokensTransferredToL2: BigInt! "ID of the delegation on L2. Null if it's not transferred" - idOnL2: String + idOnL2: Bytes "ID of the delegation on L1. Null if it's not transferred" - idOnL1: String + idOnL1: Bytes } """ @@ -840,7 +838,7 @@ Curator with all Signals and metrics """ type Curator @entity { "Eth address of the Curator" - id: ID! + id: Bytes! "Time this curator was created" createdAt: Int! @@ -894,7 +892,7 @@ Curator Signal for a single SubgraphDeployment """ type Signal @entity { "Eth address + subgraph deployment ID" - id: ID! + id: Bytes! "Eth address of the curator" curator: Curator! @@ -926,7 +924,7 @@ Curator Name Signal for a single Subgraph """ type NameSignal @entity { "Eth address + subgraph ID" - id: ID! + id: Bytes! "Eth address of the curator" curator: Curator! @@ -965,8 +963,6 @@ type NameSignal @entity { entityVersion: Int! - linkedEntity: NameSignal - "Amount of GRT transferred to L2" signalledTokensSentToL2: BigInt! "Amount of GRT received on L2" @@ -978,11 +974,11 @@ type NameSignal @entity { "Block number for the L1 -> L2 Transfer." transferredToL2AtBlockNumber: BigInt "Transaction hash for the L1 -> L2 Transfer." - transferredToL2AtTx: String + transferredToL2AtTx: Bytes "ID of the NameSignal entity on L2. Null if it's not transferred" - idOnL2: String + idOnL2: Bytes "ID of the NameSignal entity on L1. Null if it's not transferred" - idOnL1: String + idOnL1: Bytes } """ @@ -990,7 +986,7 @@ A generic transaction in The Graph Network """ interface Transaction { "Transaction hash concatenated with event log index" - id: ID! + id: Bytes! "Block number for the transaction" blockNumber: Int! @@ -1010,8 +1006,8 @@ interface Transaction { """ All relevant data for a Name Signal Transaction in The Graph Network """ -type NameSignalTransaction implements Transaction @entity { - id: ID! +type NameSignalTransaction implements Transaction @entity(immutable: true) { + id: Bytes! blockNumber: Int! @@ -1037,8 +1033,8 @@ type NameSignalTransaction implements Transaction @entity { """ All relevant data for a Signal Transaction in The Graph Network """ -type SignalTransaction implements Transaction @entity { - id: ID! +type SignalTransaction implements Transaction @entity(immutable: true) { + id: Bytes! blockNumber: Int! @@ -1075,24 +1071,15 @@ Analytics """ type IndexerDelegatedStakeRelation @entity { "Auxiliary entity to DelegatedStake to make it easier to batch update those delegations" - id: ID! + id: Bytes! "Indexer entity where the delegation resides" - indexer: Indexer! - - "Delegator entity owner of said delegation stake" - delegator: Delegator! - - "DelegatedStake entity that represents the delegation" - stake: DelegatedStake! - - "Whether the delegation is active or not. Useful to avoid updating non-active delegations without deleting the entity." - active: Boolean! + indexer: Indexer } type IndexerDailyData @entity { "-" - id: ID! + id: Bytes! "Timestamp for the start of the day that this entity represents. UTC+0" dayStart: BigInt! @@ -1147,7 +1134,7 @@ type IndexerDailyData @entity { type DelegatorDailyData @entity { "-" - id: ID! + id: Bytes! "Timestamp for the start of the day that this entity represents. UTC+0" dayStart: BigInt! @@ -1185,7 +1172,7 @@ type DelegatorDailyData @entity { type DelegatedStakeDailyData @entity { "--" - id: ID! + id: Bytes! "Timestamp for the start of the day that this entity represents. UTC+0" dayStart: BigInt! @@ -1235,7 +1222,7 @@ type DelegatedStakeDailyData @entity { type DelegatorDelegatedStakeDailyRelation @entity { "Auxiliary entity to avoid using arrays for many-to-many relation tracking. Compounds the delegator id with an autoincremental number." - id: ID! + id: Bytes! "Timestamp for the start of the day that this entity represents. UTC+0" dayStart: BigInt! @@ -1261,7 +1248,7 @@ type DelegatorDelegatedStakeDailyRelation @entity { type SubgraphDeploymentDailyData @entity { "-" - id: ID! + id: Bytes! "Timestamp for the start of the day that this entity represents. UTC+0" dayStart: BigInt! @@ -1311,7 +1298,7 @@ type SubgraphDeploymentDailyData @entity { type GraphNetworkDailyData @entity { "-" - id: ID! + id: Bytes! "Timestamp for the start of the day that this entity represents. UTC+0" dayStart: BigInt! @@ -1409,5 +1396,5 @@ type _Schema_ name: "delegatorSearch" language: en algorithm: rank - include: [{ entity: "Delegator", fields: [{ name: "defaultDisplayName" }, { name: "id" }] }] + include: [{ entity: "Delegator", fields: [{ name: "defaultDisplayName" }] }] ) diff --git a/src/mappings/controller.ts b/src/mappings/controller.ts deleted file mode 100644 index 8856139..0000000 --- a/src/mappings/controller.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { - SetContractProxy, - NewOwnership, - PartialPauseChanged, - PauseChanged, - NewPauseGuardian, -} from '../types/Controller/Controller' - -import { createOrLoadGraphNetwork } from './helpers' - -/** - * @dev handleSetContractProxy - * - */ -export function handleSetContractProxy(event: SetContractProxy): void { - let graphNetwork = createOrLoadGraphNetwork() - let contractID = event.params.id.toHexString() - // contract ids are of the form keccak256('ContractName') , i.e. keccak256('Curation') - let curationID = '0xe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f' - let gnsID = '0x39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea3' - let disputeManagerID = '0xf942813d07d17b56de9a9afc8de0ced6e8c053bbfdcc87b7badea4ddcf27c307' - let epochManagerID = '0xc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063' - let rewardsManagerID = '0x966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761' - let stakingID = '0x1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034' - let graphTokenID = '0x45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247' - - if (contractID == curationID) { - graphNetwork.curation = event.params.contractAddress - } else if (contractID == gnsID) { - graphNetwork.gns = event.params.contractAddress - } else if (contractID == disputeManagerID) { - graphNetwork.disputeManager = event.params.contractAddress - } else if (contractID == epochManagerID) { - graphNetwork.epochManager = event.params.contractAddress - } else if (contractID == rewardsManagerID) { - graphNetwork.rewardsManager = event.params.contractAddress - } else if (contractID == stakingID) { - graphNetwork.staking = event.params.contractAddress - } else if (contractID == graphTokenID) { - graphNetwork.graphToken = event.params.contractAddress - } - graphNetwork.save() -} - -/** - * @dev handleNewOwnership - * - */ -export function handleNewOwnership(event: NewOwnership): void { - let graphNetwork = createOrLoadGraphNetwork() - graphNetwork.governor = event.params.to - graphNetwork.save() -} - -/** - * @dev handlePartialPauseChanged - * - */ -export function handlePartialPauseChanged(event: PartialPauseChanged): void { - let graphNetwork = createOrLoadGraphNetwork() - graphNetwork.isPartialPaused = event.params.isPaused - graphNetwork.save() -} - -/** - * @dev handlePauseChanged - * - */ -export function handlePauseChanged(event: PauseChanged): void { - let graphNetwork = createOrLoadGraphNetwork() - graphNetwork.isPaused = event.params.isPaused - graphNetwork.save() -} - -/** - * @dev handleNewPauseGuardian - * - */ -export function handleNewPauseGuardian(event: NewPauseGuardian): void { - let graphNetwork = createOrLoadGraphNetwork() - graphNetwork.pauseGuardian = event.params.pauseGuardian - graphNetwork.save() -} diff --git a/src/mappings/curation.ts b/src/mappings/curation.ts index 9473488..ac1c7d1 100644 --- a/src/mappings/curation.ts +++ b/src/mappings/curation.ts @@ -12,17 +12,18 @@ import { SubgraphDeployment, SignalTransaction, } from '../types/schema' -import { Address, BigInt, BigDecimal } from '@graphprotocol/graph-ts' +import { Bytes } from '@graphprotocol/graph-ts' import { createOrLoadSignal, createOrLoadSubgraphDeployment, createOrLoadCurator, createOrLoadGraphNetwork, - joinID, getAndUpdateSubgraphDeploymentDailyData, calculatePricePerShare, getAndUpdateNetworkDailyData, + compoundId, + BIGINT_ZERO, } from './helpers' /** @@ -33,7 +34,7 @@ import { */ export function handleSignalled(event: Signalled): void { // Update curator - let id = event.params.curator.toHexString() + let id = event.params.curator let curator = createOrLoadCurator(id, event.block.timestamp) curator.totalSignalledTokens = curator.totalSignalledTokens.plus( event.params.tokens.minus(event.params.curationTax), @@ -41,7 +42,7 @@ export function handleSignalled(event: Signalled): void { curator.save() // Update signal - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID let signal = createOrLoadSignal(id, subgraphDeploymentID) signal.signalledTokens = signal.signalledTokens.plus( event.params.tokens.minus(event.params.curationTax), @@ -68,16 +69,16 @@ export function handleSignalled(event: Signalled): void { // Create n signal tx let signalTransaction = new SignalTransaction( - event.transaction.hash.toHexString().concat('-').concat(event.logIndex.toString()), + compoundId(event.transaction.hash, changetype(Bytes.fromBigInt(event.logIndex))), ) signalTransaction.blockNumber = event.block.number.toI32() signalTransaction.timestamp = event.block.timestamp.toI32() - signalTransaction.signer = event.params.curator.toHexString() + signalTransaction.signer = event.params.curator signalTransaction.type = 'MintSignal' signalTransaction.signal = event.params.signal signalTransaction.tokens = event.params.tokens.minus(event.params.curationTax) - signalTransaction.withdrawalFees = BigInt.fromI32(0) - signalTransaction.subgraphDeployment = event.params.subgraphDeploymentID.toHexString() + signalTransaction.withdrawalFees = BIGINT_ZERO + signalTransaction.subgraphDeployment = event.params.subgraphDeploymentID signalTransaction.save() getAndUpdateSubgraphDeploymentDailyData(deployment as SubgraphDeployment, event.block.timestamp) @@ -91,13 +92,13 @@ export function handleSignalled(event: Signalled): void { */ export function handleBurned(event: Burned): void { // Update curator - let id = event.params.curator.toHexString() + let id = event.params.curator let curator = Curator.load(id)! curator.totalUnsignalledTokens = curator.totalUnsignalledTokens.plus(event.params.tokens) // Update signal - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() - let signalID = joinID([id, subgraphDeploymentID]) + let subgraphDeploymentID = event.params.subgraphDeploymentID + let signalID = compoundId(id, subgraphDeploymentID) let signal = Signal.load(signalID)! // Note - if you immediately deposited and then withdrew, you would lose 5%, and you were // realize this loss by seeing unsignaled tokens being 95 and signalled 100 @@ -119,16 +120,16 @@ export function handleBurned(event: Burned): void { // Create n signal tx let signalTransaction = new SignalTransaction( - event.transaction.hash.toHexString().concat('-').concat(event.logIndex.toString()), + compoundId(event.transaction.hash, changetype(Bytes.fromBigInt(event.logIndex))), ) signalTransaction.blockNumber = event.block.number.toI32() signalTransaction.timestamp = event.block.timestamp.toI32() - signalTransaction.signer = event.params.curator.toHexString() + signalTransaction.signer = event.params.curator signalTransaction.type = 'BurnSignal' signalTransaction.signal = event.params.signal signalTransaction.tokens = event.params.tokens - signalTransaction.withdrawalFees = BigInt.fromI32(0) - signalTransaction.subgraphDeployment = event.params.subgraphDeploymentID.toHexString() + signalTransaction.withdrawalFees = BIGINT_ZERO + signalTransaction.subgraphDeployment = event.params.subgraphDeploymentID signalTransaction.save() getAndUpdateSubgraphDeploymentDailyData(deployment as SubgraphDeployment, event.block.timestamp) @@ -140,17 +141,17 @@ export function handleBurned(event: Burned): void { * - updates all parameters of curation, depending on string passed. We then can * call the contract directly to get the updated value */ - export function handleParameterUpdated(event: ParameterUpdated): void { - let parameter = event.params.param - - if (parameter == 'defaultReserveRatio') { - let graphNetwork = createOrLoadGraphNetwork() - let curation = Curation.bind(event.address) - graphNetwork.defaultReserveRatio = curation.defaultReserveRatio().toI32() - graphNetwork.save() - getAndUpdateNetworkDailyData(graphNetwork as GraphNetwork, event.block.timestamp) - } - } +export function handleParameterUpdated(event: ParameterUpdated): void { + let parameter = event.params.param + + if (parameter == 'defaultReserveRatio') { + let graphNetwork = createOrLoadGraphNetwork() + let curation = Curation.bind(event.address) + graphNetwork.defaultReserveRatio = curation.defaultReserveRatio().toI32() + graphNetwork.save() + getAndUpdateNetworkDailyData(graphNetwork as GraphNetwork, event.block.timestamp) + } +} // export function handleImplementationUpdated(event: ImplementationUpdated): void { // let graphNetwork = createOrLoadGraphNetwork() diff --git a/src/mappings/ethereumDIDRegistry.ts b/src/mappings/ethereumDIDRegistry.ts index 561acf2..7b55cfd 100644 --- a/src/mappings/ethereumDIDRegistry.ts +++ b/src/mappings/ethereumDIDRegistry.ts @@ -1,12 +1,11 @@ import { Bytes, DataSourceContext } from '@graphprotocol/graph-ts' import { DIDAttributeChanged } from '../types/EthereumDIDRegistry/EthereumDIDRegistry' import { GraphAccountMetadata as GraphAccountMetadataTemplate } from '../types/templates' -import { GraphAccount } from '../types/schema' -import { addQm, createOrLoadGraphAccount } from './helpers' +import { addQm, createOrLoadGraphAccount, joinID } from './helpers' export function handleDIDAttributeChanged(event: DIDAttributeChanged): void { - let graphAccount = createOrLoadGraphAccount(event.params.identity.toHexString(), event.block.timestamp) + let graphAccount = createOrLoadGraphAccount(event.params.identity, event.block.timestamp) // OFFCHAIN_DATANAME = keccak256("GRAPH NAME SERVICE") // 0x72abcb436eed911d1b6046bbe645c235ec3767c842eb1005a6da9326c2347e4c if ( @@ -17,13 +16,17 @@ export function handleDIDAttributeChanged(event: DIDAttributeChanged): void { // called it directly, it could crash the subgraph let hexHash = changetype(addQm(event.params.value)) let base58Hash = hexHash.toBase58() - let uniqueTxID = event.transaction.hash.toHexString().concat('-').concat(event.logIndex.toString()) - let metadataId = uniqueTxID.concat('-').concat(graphAccount.id.concat('-').concat(base58Hash)) + let metadataId = joinID([ + event.transaction.hash, + changetype(Bytes.fromBigInt(event.logIndex)), + graphAccount.id, + hexHash, + ]) graphAccount.metadata = metadataId graphAccount.save() let context = new DataSourceContext() - context.setString('id', metadataId) + context.setBytes('id', metadataId) GraphAccountMetadataTemplate.createWithContext(base58Hash, context) } -} \ No newline at end of file +} diff --git a/src/mappings/gns.ts b/src/mappings/gns.ts index 67ec848..fc8ed7a 100644 --- a/src/mappings/gns.ts +++ b/src/mappings/gns.ts @@ -1,4 +1,4 @@ -import { BigDecimal, BigInt, Bytes, ipfs, json } from '@graphprotocol/graph-ts' +import { BigDecimal, Bytes, ipfs, json } from '@graphprotocol/graph-ts' import { SubgraphPublished, SubgraphDeprecated, @@ -30,10 +30,9 @@ import { Delegator, Indexer, GraphAccountName, - SubgraphDeployment, } from '../types/schema' -import { jsonToString, zeroBD } from './utils' +import { zeroBD } from './utils' import { createOrLoadSubgraphDeployment, createOrLoadGraphAccount, @@ -41,20 +40,16 @@ import { addQm, resolveName, createOrLoadSubgraph, - joinID, createOrLoadNameSignal, getSubgraphID, convertBigIntSubgraphIDToBase58, - duplicateOrUpdateSubgraphWithNewID, - duplicateOrUpdateSubgraphVersionWithNewID, - duplicateOrUpdateNameSignalWithNewID, + compoundId, + joinIDString, + BIGINT_ONE, } from './helpers' export function handleSetDefaultName(event: SetDefaultName): void { - let graphAccount = createOrLoadGraphAccount( - event.params.graphAccount.toHexString(), - event.block.timestamp, - ) + let graphAccount = createOrLoadGraphAccount(event.params.graphAccount, event.block.timestamp) if (graphAccount.defaultName != null) { let graphAccountName = GraphAccountName.load(graphAccount.defaultName!)! @@ -76,13 +71,13 @@ export function handleSetDefaultName(event: SetDefaultName): void { graphAccount.defaultDisplayName = null graphAccount.save() - let indexer = Indexer.load(event.params.graphAccount.toHexString()) + let indexer = Indexer.load(event.params.graphAccount) if (indexer != null) { indexer.defaultDisplayName = graphAccount.defaultDisplayName indexer.save() } - let delegator = Delegator.load(event.params.graphAccount.toHexString()) + let delegator = Delegator.load(event.params.graphAccount) if (delegator != null) { delegator.defaultDisplayName = graphAccount.defaultDisplayName delegator.save() @@ -104,7 +99,7 @@ export function handleSetDefaultName(event: SetDefaultName): void { // And if the GraphAccount changes default name, we should change it on the indexer too. // Indexer also has a defaultDisplayName because it helps with filtering. - let userAddress = event.params.graphAccount.toHexString() + let userAddress = event.params.graphAccount let indexer = Indexer.load(userAddress) if (indexer != null) { @@ -122,19 +117,12 @@ export function handleSetDefaultName(event: SetDefaultName): void { } export function handleSubgraphMetadataUpdated(event: SubgraphMetadataUpdated): void { - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) let subgraphID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) let subgraph = createOrLoadSubgraph(subgraphID, event.params.graphAccount, event.block.timestamp) subgraph.metadataHash = event.params.subgraphMetadata subgraph.updatedAt = event.block.timestamp.toI32() subgraph.save() - - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraphDuplicate.save() } /** @@ -146,41 +134,28 @@ export function handleSubgraphMetadataUpdated(event: SubgraphMetadataUpdated): v * - creates graph account, if needed */ export function handleSubgraphPublished(event: SubgraphPublished): void { - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) let subgraphID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) - let versionNumber: BigInt // Update subgraph let subgraph = createOrLoadSubgraph(subgraphID, event.params.graphAccount, event.block.timestamp) - versionNumber = subgraph.versionCount - let versionIDOld = joinID([oldID, subgraph.versionCount.toString()]) - let versionIDNew = joinID([subgraph.id, subgraph.versionCount.toString()]) - subgraph.creatorAddress = changetype(event.params.graphAccount) + let versionNumber = subgraph.versionCount + let versionIDNew = compoundId(subgraph.id, changetype(Bytes.fromBigInt(subgraph.versionCount))) + subgraph.creatorAddress = event.params.graphAccount subgraph.subgraphNumber = event.params.subgraphNumber - subgraph.oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) - subgraph.versionCount = subgraph.versionCount.plus(BigInt.fromI32(1)) + subgraph.oldID = joinIDString([event.params.graphAccount.toHexString(), event.params.subgraphNumber.toString()]) + subgraph.versionCount = subgraph.versionCount.plus(BIGINT_ONE) subgraph.updatedAt = event.block.timestamp.toI32() - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraph.currentVersion = versionIDNew - subgraphDuplicate.currentVersion = versionIDOld - subgraph.linkedEntity = subgraphDuplicate.id + subgraph.save() - subgraphDuplicate.save() // Creates Graph Account, if needed - createOrLoadGraphAccount(event.params.graphAccount.toHexString(), event.block.timestamp) + createOrLoadGraphAccount(event.params.graphAccount, event.block.timestamp) // Create subgraph deployment, if needed. Can happen if the deployment has never been staked on - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID let deployment = createOrLoadSubgraphDeployment(subgraphDeploymentID, event.block.timestamp) // Create subgraph version @@ -190,19 +165,8 @@ export function handleSubgraphPublished(event: SubgraphPublished): void { subgraphVersion.subgraphDeployment = subgraphDeploymentID subgraphVersion.version = versionNumber.toI32() subgraphVersion.createdAt = event.block.timestamp.toI32() - let hexHash = changetype(addQm(event.params.versionMetadata)) - let base58Hash = hexHash.toBase58() subgraphVersion.metadataHash = event.params.versionMetadata - //subgraphVersion = fetchSubgraphVersionMetadata(subgraphVersion, base58Hash) - let subgraphVersionDuplicate = duplicateOrUpdateSubgraphVersionWithNewID( - subgraphVersion, - versionIDOld, - 1, - ) - subgraphVersion.linkedEntity = subgraphVersionDuplicate.id - subgraphVersionDuplicate.subgraph = subgraphDuplicate.id subgraphVersion.save() - subgraphVersionDuplicate.save() } /** * @dev handleSubgraphDeprecated @@ -210,10 +174,6 @@ export function handleSubgraphPublished(event: SubgraphPublished): void { * - deprecates subgraph version */ export function handleSubgraphDeprecated(event: SubgraphDeprecated): void { - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) let bigIntID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraph = Subgraph.load(subgraphID)! @@ -221,16 +181,9 @@ export function handleSubgraphDeprecated(event: SubgraphDeprecated): void { subgraph.active = false subgraph.updatedAt = event.block.timestamp.toI32() subgraph.save() - - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraphDuplicate.save() } export function handleNameSignalEnabled(event: NameSignalEnabled): void { - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) let bigIntID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraph = Subgraph.load(subgraphID)! @@ -238,17 +191,10 @@ export function handleNameSignalEnabled(event: NameSignalEnabled): void { // Right now we set deploymentID in SubgraphPublished, so only this is needed subgraph.reserveRatio = event.params.reserveRatio.toI32() subgraph.save() - - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraphDuplicate.save() } export function handleNSignalMinted(event: NSignalMinted): void { - let curatorID = event.params.nameCurator.toHexString() - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) + let curatorID = event.params.nameCurator let bigIntID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraph = Subgraph.load(subgraphID)! @@ -257,11 +203,8 @@ export function handleNSignalMinted(event: NSignalMinted): void { subgraph.signalledTokens = subgraph.signalledTokens.plus(event.params.tokensDeposited) subgraph.save() - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraphDuplicate.save() - let nameSignal = createOrLoadNameSignal( - event.params.nameCurator.toHexString(), + event.params.nameCurator, subgraphID, event.block.timestamp, ) @@ -278,16 +221,10 @@ export function handleNSignalMinted(event: NSignalMinted): void { nameSignal.nameSignal.toBigDecimal(), ) } - let nsDuplicateID = joinID([curatorID, oldID]) - nameSignal.linkedEntity = nsDuplicateID nameSignal.save() - let nameSignalDuplicate = duplicateOrUpdateNameSignalWithNewID(nameSignal, nsDuplicateID, 1) - nameSignalDuplicate.subgraph = oldID - nameSignalDuplicate.save() - // Update the curator - let curator = createOrLoadCurator(event.params.nameCurator.toHexString(), event.block.timestamp) + let curator = createOrLoadCurator(event.params.nameCurator, event.block.timestamp) curator.totalNameSignalledTokens = curator.totalNameSignalledTokens.plus( event.params.tokensDeposited, ) @@ -306,11 +243,11 @@ export function handleNSignalMinted(event: NSignalMinted): void { // Create n signal tx let nSignalTransaction = new NameSignalTransaction( - event.transaction.hash.toHexString().concat('-').concat(event.logIndex.toString()), + compoundId(event.transaction.hash, changetype(Bytes.fromBigInt(event.logIndex))), ) nSignalTransaction.blockNumber = event.block.number.toI32() nSignalTransaction.timestamp = event.block.timestamp.toI32() - nSignalTransaction.signer = event.params.nameCurator.toHexString() + nSignalTransaction.signer = event.params.nameCurator nSignalTransaction.type = 'MintNSignal' nSignalTransaction.nameSignal = event.params.nSignalCreated nSignalTransaction.versionSignal = event.params.vSignalCreated @@ -320,11 +257,7 @@ export function handleNSignalMinted(event: NSignalMinted): void { } export function handleNSignalBurned(event: NSignalBurned): void { - let curatorID = event.params.nameCurator.toHexString() - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) + let curatorID = event.params.nameCurator let bigIntID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraph = Subgraph.load(subgraphID)! @@ -333,12 +266,9 @@ export function handleNSignalBurned(event: NSignalBurned): void { subgraph.unsignalledTokens = subgraph.unsignalledTokens.plus(event.params.tokensReceived) subgraph.save() - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraphDuplicate.save() - // update name signal let nameSignal = createOrLoadNameSignal( - event.params.nameCurator.toHexString(), + event.params.nameCurator, subgraphID, event.block.timestamp, ) @@ -356,16 +286,10 @@ export function handleNSignalBurned(event: NSignalBurned): void { if (nameSignal.averageCostBasis == BigDecimal.fromString('0')) { nameSignal.averageCostBasisPerSignal = BigDecimal.fromString('0') } - let nsDuplicateID = joinID([curatorID, oldID]) - nameSignal.linkedEntity = nsDuplicateID nameSignal.save() - let nameSignalDuplicate = duplicateOrUpdateNameSignalWithNewID(nameSignal, nsDuplicateID, 1) - nameSignalDuplicate.subgraph = oldID - nameSignalDuplicate.save() - // update curator - let curator = createOrLoadCurator(event.params.nameCurator.toHexString(), event.block.timestamp) + let curator = createOrLoadCurator(event.params.nameCurator, event.block.timestamp) curator.totalNameUnsignalledTokens = curator.totalNameUnsignalledTokens.plus( event.params.tokensReceived, ) @@ -382,11 +306,11 @@ export function handleNSignalBurned(event: NSignalBurned): void { // Create n signal tx let nSignalTransaction = new NameSignalTransaction( - event.transaction.hash.toHexString().concat('-').concat(event.logIndex.toString()), + compoundId(event.transaction.hash, changetype(Bytes.fromBigInt(event.logIndex))), ) nSignalTransaction.blockNumber = event.block.number.toI32() nSignalTransaction.timestamp = event.block.timestamp.toI32() - nSignalTransaction.signer = event.params.nameCurator.toHexString() + nSignalTransaction.signer = event.params.nameCurator nSignalTransaction.type = 'BurnNSignal' nSignalTransaction.nameSignal = event.params.nSignalBurnt nSignalTransaction.versionSignal = event.params.vSignalBurnt @@ -396,10 +320,6 @@ export function handleNSignalBurned(event: NSignalBurned): void { } export function handleNameSignalUpgrade(event: NameSignalUpgrade): void { - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) let bigIntID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraph = Subgraph.load(subgraphID)! @@ -410,33 +330,19 @@ export function handleNameSignalUpgrade(event: NameSignalUpgrade): void { subgraph.unsignalledTokens = subgraph.unsignalledTokens.plus(event.params.tokensSignalled) subgraph.signalledTokens = subgraph.signalledTokens.plus(event.params.tokensSignalled) subgraph.save() - - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraphDuplicate.save() } // Only need to upgrade withdrawable tokens. Everything else handled from // curation events, or handleGRTWithdrawn export function handleNameSignalDisabled(event: NameSignalDisabled): void { - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) let bigIntID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraph = Subgraph.load(subgraphID)! subgraph.withdrawableTokens = event.params.withdrawableGRT subgraph.save() - - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraphDuplicate.save() } export function handleGRTWithdrawn(event: GRTWithdrawn): void { - let oldID = joinID([ - event.params.graphAccount.toHexString(), - event.params.subgraphNumber.toString(), - ]) let bigIntID = getSubgraphID(event.params.graphAccount, event.params.subgraphNumber) let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraph = Subgraph.load(subgraphID)! @@ -445,27 +351,17 @@ export function handleGRTWithdrawn(event: GRTWithdrawn): void { subgraph.nameSignalAmount = subgraph.nameSignalAmount.minus(event.params.nSignalBurnt) subgraph.save() - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, oldID, 1) - subgraphDuplicate.save() - let nameSignal = createOrLoadNameSignal( - event.params.nameCurator.toHexString(), + event.params.nameCurator, subgraphID, event.block.timestamp, ) nameSignal.withdrawnTokens = event.params.withdrawnGRT nameSignal.nameSignal = nameSignal.nameSignal.minus(event.params.nSignalBurnt) nameSignal.lastNameSignalChange = event.block.timestamp.toI32() - - let nsDuplicateID = joinID([event.params.nameCurator.toHexString(), oldID]) - nameSignal.linkedEntity = nsDuplicateID nameSignal.save() - let nameSignalDuplicate = duplicateOrUpdateNameSignalWithNewID(nameSignal, nsDuplicateID, 1) - nameSignalDuplicate.subgraph = oldID - nameSignalDuplicate.save() - - let curator = Curator.load(event.params.nameCurator.toHexString())! + let curator = Curator.load(event.params.nameCurator)! curator.totalWithdrawnTokens = curator.totalWithdrawnTokens.plus(event.params.withdrawnGRT) curator.save() } @@ -476,8 +372,7 @@ export function handleGRTWithdrawn(event: GRTWithdrawn): void { export function handleSubgraphPublishedV2(event: SubgraphPublished1): void { let bigIntID = event.params.subgraphID let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) - let versionID: string - let versionNumber: BigInt + // Update subgraph let subgraph = createOrLoadSubgraph( @@ -485,9 +380,10 @@ export function handleSubgraphPublishedV2(event: SubgraphPublished1): void { event.transaction.from, event.block.timestamp, ) - versionID = joinID([subgraph.id, subgraph.versionCount.toString()]) + let versionNumber = subgraph.versionCount + let versionID = compoundId(subgraph.id, changetype(Bytes.fromBigInt(subgraph.versionCount))) subgraph.currentVersion = versionID - subgraph.versionCount = subgraph.versionCount.plus(BigInt.fromI32(1)) + subgraph.versionCount = subgraph.versionCount.plus(BIGINT_ONE) subgraph.updatedAt = event.block.timestamp.toI32() subgraph.reserveRatio = event.params.reserveRatio.toI32() subgraph.migrated = true @@ -495,7 +391,7 @@ export function handleSubgraphPublishedV2(event: SubgraphPublished1): void { subgraph.save() // Create subgraph deployment, if needed. Can happen if the deployment has never been staked on - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID let deployment = createOrLoadSubgraphDeployment(subgraphDeploymentID, event.block.timestamp) // Create subgraph version @@ -520,11 +416,6 @@ export function handleSubgraphDeprecatedV2(event: SubgraphDeprecated1): void { subgraph.updatedAt = event.block.timestamp.toI32() subgraph.withdrawableTokens = event.params.withdrawableGRT subgraph.save() - - if (subgraph.linkedEntity != null) { - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, subgraph.linkedEntity!, 1) - subgraphDuplicate.save() - } } // - event: SubgraphMetadataUpdated(indexed uint256,bytes32) @@ -538,18 +429,13 @@ export function handleSubgraphMetadataUpdatedV2(event: SubgraphMetadataUpdated1) subgraph.metadataHash = event.params.subgraphMetadata subgraph.updatedAt = event.block.timestamp.toI32() subgraph.save() - - if (subgraph.linkedEntity != null) { - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, subgraph.linkedEntity!, 1) - subgraphDuplicate.save() - } } // - event: SignalMinted(indexed uint256,indexed address,uint256,uint256,uint256) // handler: handleNSignalMintedV2 export function handleNSignalMintedV2(event: SignalMinted): void { - let curatorID = event.params.curator.toHexString() + let curatorID = event.params.curator let bigIntID = event.params.subgraphID let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraph = Subgraph.load(subgraphID)! @@ -558,16 +444,7 @@ export function handleNSignalMintedV2(event: SignalMinted): void { subgraph.signalledTokens = subgraph.signalledTokens.plus(event.params.tokensDeposited) subgraph.save() - if (subgraph.linkedEntity != null) { - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, subgraph.linkedEntity!, 1) - subgraphDuplicate.save() - } - - let nameSignal = createOrLoadNameSignal( - event.params.curator.toHexString(), - subgraphID, - event.block.timestamp, - ) + let nameSignal = createOrLoadNameSignal(event.params.curator, subgraphID, event.block.timestamp) nameSignal.nameSignal = nameSignal.nameSignal.plus(event.params.nSignalCreated) nameSignal.signalledTokens = nameSignal.signalledTokens.plus(event.params.tokensDeposited) nameSignal.lastNameSignalChange = event.block.timestamp.toI32() @@ -583,18 +460,8 @@ export function handleNSignalMintedV2(event: SignalMinted): void { } nameSignal.save() - if (subgraph.linkedEntity != null && nameSignal.linkedEntity != null) { - let nameSignalDuplicate = duplicateOrUpdateNameSignalWithNewID( - nameSignal, - nameSignal.linkedEntity!, - 1, - ) - nameSignalDuplicate.subgraph = subgraph.linkedEntity! - nameSignalDuplicate.save() - } - // Update the curator - let curator = createOrLoadCurator(event.params.curator.toHexString(), event.block.timestamp) + let curator = createOrLoadCurator(event.params.curator, event.block.timestamp) curator.totalNameSignalledTokens = curator.totalNameSignalledTokens.plus( event.params.tokensDeposited, ) @@ -613,11 +480,11 @@ export function handleNSignalMintedV2(event: SignalMinted): void { // Create n signal tx let nSignalTransaction = new NameSignalTransaction( - event.transaction.hash.toHexString().concat('-').concat(event.logIndex.toString()), + compoundId(event.transaction.hash, changetype(Bytes.fromBigInt(event.logIndex))), ) nSignalTransaction.blockNumber = event.block.number.toI32() nSignalTransaction.timestamp = event.block.timestamp.toI32() - nSignalTransaction.signer = event.params.curator.toHexString() + nSignalTransaction.signer = event.params.curator nSignalTransaction.type = 'MintNSignal' nSignalTransaction.nameSignal = event.params.nSignalCreated nSignalTransaction.versionSignal = event.params.vSignalCreated @@ -638,17 +505,8 @@ export function handleNSignalBurnedV2(event: SignalBurned): void { subgraph.unsignalledTokens = subgraph.unsignalledTokens.plus(event.params.tokensReceived) subgraph.save() - if (subgraph.linkedEntity != null) { - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, subgraph.linkedEntity!, 1) - subgraphDuplicate.save() - } - // update name signal - let nameSignal = createOrLoadNameSignal( - event.params.curator.toHexString(), - subgraphID, - event.block.timestamp, - ) + let nameSignal = createOrLoadNameSignal(event.params.curator, subgraphID, event.block.timestamp) nameSignal.nameSignal = nameSignal.nameSignal.minus(event.params.nSignalBurnt) nameSignal.unsignalledTokens = nameSignal.unsignalledTokens.plus(event.params.tokensReceived) @@ -665,18 +523,8 @@ export function handleNSignalBurnedV2(event: SignalBurned): void { } nameSignal.save() - if (subgraph.linkedEntity != null && nameSignal.linkedEntity != null) { - let nameSignalDuplicate = duplicateOrUpdateNameSignalWithNewID( - nameSignal, - nameSignal.linkedEntity!, - 1, - ) - nameSignalDuplicate.subgraph = subgraph.linkedEntity! - nameSignalDuplicate.save() - } - // update curator - let curator = createOrLoadCurator(event.params.curator.toHexString(), event.block.timestamp) + let curator = createOrLoadCurator(event.params.curator, event.block.timestamp) curator.totalNameUnsignalledTokens = curator.totalNameUnsignalledTokens.plus( event.params.tokensReceived, ) @@ -693,11 +541,11 @@ export function handleNSignalBurnedV2(event: SignalBurned): void { // Create n signal tx let nSignalTransaction = new NameSignalTransaction( - event.transaction.hash.toHexString().concat('-').concat(event.logIndex.toString()), + compoundId(event.transaction.hash, changetype(Bytes.fromBigInt(event.logIndex))), ) nSignalTransaction.blockNumber = event.block.number.toI32() nSignalTransaction.timestamp = event.block.timestamp.toI32() - nSignalTransaction.signer = event.params.curator.toHexString() + nSignalTransaction.signer = event.params.curator nSignalTransaction.type = 'BurnNSignal' nSignalTransaction.nameSignal = event.params.nSignalBurnt nSignalTransaction.versionSignal = event.params.vSignalBurnt @@ -718,32 +566,13 @@ export function handleGRTWithdrawnV2(event: GRTWithdrawn1): void { subgraph.nameSignalAmount = subgraph.nameSignalAmount.minus(event.params.nSignalBurnt) subgraph.save() - if (subgraph.linkedEntity != null) { - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, subgraph.linkedEntity!, 1) - subgraphDuplicate.save() - } - - let nameSignal = createOrLoadNameSignal( - event.params.curator.toHexString(), - subgraphID, - event.block.timestamp, - ) + let nameSignal = createOrLoadNameSignal(event.params.curator, subgraphID, event.block.timestamp) nameSignal.withdrawnTokens = event.params.withdrawnGRT nameSignal.nameSignal = nameSignal.nameSignal.minus(event.params.nSignalBurnt) nameSignal.lastNameSignalChange = event.block.timestamp.toI32() nameSignal.save() - if (subgraph.linkedEntity != null && nameSignal.linkedEntity) { - let nameSignalDuplicate = duplicateOrUpdateNameSignalWithNewID( - nameSignal, - nameSignal.linkedEntity!, - 1, - ) - nameSignalDuplicate.subgraph = subgraph.linkedEntity! - nameSignalDuplicate.save() - } - - let curator = Curator.load(event.params.curator.toHexString())! + let curator = Curator.load(event.params.curator)! curator.totalWithdrawnTokens = curator.totalWithdrawnTokens.plus(event.params.withdrawnGRT) curator.save() } @@ -762,11 +591,6 @@ export function handleSubgraphUpgraded(event: SubgraphUpgraded): void { subgraph.unsignalledTokens = subgraph.unsignalledTokens.plus(event.params.tokensSignalled) subgraph.signalledTokens = subgraph.signalledTokens.plus(event.params.tokensSignalled) subgraph.save() - - if (subgraph.linkedEntity != null) { - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, subgraph.linkedEntity!, 1) - subgraphDuplicate.save() - } } // - event: SubgraphVersionUpdated(indexed uint256,indexed bytes32,bytes32) @@ -775,8 +599,7 @@ export function handleSubgraphUpgraded(event: SubgraphUpgraded): void { export function handleSubgraphVersionUpdated(event: SubgraphVersionUpdated): void { let bigIntID = event.params.subgraphID let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) - let versionID: string - let versionNumber: BigInt + let versionID: Bytes // Update subgraph let subgraph = Subgraph.load(subgraphID)! @@ -786,7 +609,7 @@ export function handleSubgraphVersionUpdated(event: SubgraphVersionUpdated): voi subgraph.save() // Update already initialized subgraph version - versionID = joinID([subgraph.id, subgraph.versionCount.minus(BigInt.fromI32(1)).toString()]) + versionID = compoundId(subgraph.id, changetype(Bytes.fromBigInt(subgraph.versionCount.minus(BIGINT_ONE)))) let subgraphVersion = SubgraphVersion.load(versionID)! // let hexHash = changetype(addQm(event.params.versionMetadata)) // let base58Hash = hexHash.toBase58() @@ -794,15 +617,15 @@ export function handleSubgraphVersionUpdated(event: SubgraphVersionUpdated): voi //subgraphVersion = fetchSubgraphVersionMetadata(subgraphVersion, base58Hash) subgraphVersion.save() } else { - versionNumber = subgraph.versionCount - versionID = joinID([subgraph.id, subgraph.versionCount.toString()]) + let versionNumber = subgraph.versionCount + versionID = compoundId(subgraph.id, changetype(Bytes.fromBigInt(subgraph.versionCount))) subgraph.currentVersion = versionID - subgraph.versionCount = subgraph.versionCount.plus(BigInt.fromI32(1)) + subgraph.versionCount = subgraph.versionCount.plus(BIGINT_ONE) subgraph.updatedAt = event.block.timestamp.toI32() subgraph.save() // Create subgraph deployment, if needed. Can happen if the deployment has never been staked on - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID let deployment = createOrLoadSubgraphDeployment(subgraphDeploymentID, event.block.timestamp) // Create subgraph version @@ -812,30 +635,7 @@ export function handleSubgraphVersionUpdated(event: SubgraphVersionUpdated): voi subgraphVersion.subgraphDeployment = subgraphDeploymentID subgraphVersion.version = versionNumber.toI32() subgraphVersion.createdAt = event.block.timestamp.toI32() - let hexHash = changetype(addQm(event.params.versionMetadata)) - let base58Hash = hexHash.toBase58() subgraphVersion.metadataHash = event.params.versionMetadata - //subgraphVersion = fetchSubgraphVersionMetadata(subgraphVersion, base58Hash) - - if (subgraph.linkedEntity != null) { - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID( - subgraph, - subgraph.linkedEntity!, - 1, - ) - let duplicateVersionID = joinID([subgraphDuplicate.id, versionNumber.toString()]) - subgraphDuplicate.currentVersion = duplicateVersionID - subgraphDuplicate.save() - - let subgraphVersionDuplicate = duplicateOrUpdateSubgraphVersionWithNewID( - subgraphVersion, - duplicateVersionID, - 1, - ) - subgraphVersionDuplicate.subgraph = subgraphDuplicate.id - subgraphVersion.linkedEntity = subgraphVersionDuplicate.id - subgraphVersionDuplicate.save() - } subgraphVersion.save() } } @@ -850,16 +650,13 @@ export function handleLegacySubgraphClaimed(event: LegacySubgraphClaimed): void let subgraph = createOrLoadSubgraph(subgraphID, event.params.graphAccount, event.block.timestamp) subgraph.migrated = true subgraph.save() - - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, subgraph.linkedEntity!, 1) - subgraphDuplicate.save() } // - event: Transfer(indexed address,indexed address,indexed uint256) // handler: handleTransfer export function handleTransfer(event: Transfer): void { - let newOwner = createOrLoadGraphAccount(event.params.to.toHexString(), event.block.timestamp) + let newOwner = createOrLoadGraphAccount(event.params.to, event.block.timestamp) // Update subgraph v2 let subgraph = createOrLoadSubgraph( @@ -870,9 +667,4 @@ export function handleTransfer(event: Transfer): void { subgraph.updatedAt = event.block.timestamp.toI32() subgraph.owner = newOwner.id subgraph.save() - - if (subgraph.linkedEntity != null) { - let subgraphDuplicate = duplicateOrUpdateSubgraphWithNewID(subgraph, subgraph.linkedEntity!, 1) - subgraphDuplicate.save() - } } diff --git a/src/mappings/helpers.ts b/src/mappings/helpers.ts index 7a26b6e..e4ade4c 100644 --- a/src/mappings/helpers.ts +++ b/src/mappings/helpers.ts @@ -25,19 +25,25 @@ import { ENS } from '../types/GNS/ENS' import { addresses } from '../../config/addresses' import { LAUNCH_DAY, SECONDS_PER_DAY, avoidNegativeRoundingError } from './utils' -export function createOrLoadGraphAccount(id: string, timeStamp: BigInt): GraphAccount { +let bytesSeparator = Bytes.fromHexString('0xABCDEF') +export let BIGINT_ZERO = BigInt.fromI32(0) +export let BIGINT_ONE = BigInt.fromI32(1) +export let BIGDECIMAL_ZERO = BigDecimal.fromString('0') +export let BIGDECIMAL_ONE = BigDecimal.fromString('1') + +export function createOrLoadGraphAccount(id: Bytes, timeStamp: BigInt): GraphAccount { let graphAccount = GraphAccount.load(id) if (graphAccount == null) { graphAccount = new GraphAccount(id) graphAccount.createdAt = timeStamp.toI32() graphAccount.operators = [] - graphAccount.balance = BigInt.fromI32(0) - graphAccount.balanceReceivedFromL1Delegation = BigInt.fromI32(0) - graphAccount.balanceReceivedFromL1Signalling = BigInt.fromI32(0) - graphAccount.curationApproval = BigInt.fromI32(0) - graphAccount.stakingApproval = BigInt.fromI32(0) - graphAccount.gnsApproval = BigInt.fromI32(0) - //graphAccount.subgraphQueryFees = BigInt.fromI32(0) + graphAccount.balance = BIGINT_ZERO + graphAccount.balanceReceivedFromL1Delegation = BIGINT_ZERO + graphAccount.balanceReceivedFromL1Signalling = BIGINT_ZERO + graphAccount.curationApproval = BIGINT_ZERO + graphAccount.stakingApproval = BIGINT_ZERO + graphAccount.gnsApproval = BIGINT_ZERO + //graphAccount.subgraphQueryFees = BIGINT_ZERO graphAccount.save() } return graphAccount as GraphAccount @@ -52,10 +58,10 @@ export function createOrLoadSubgraph( let subgraph = Subgraph.load(subgraphID) if (subgraph == null) { subgraph = new Subgraph(subgraphID) - subgraph.owner = owner.toHexString() + subgraph.owner = owner subgraph.createdAt = timestamp.toI32() subgraph.updatedAt = timestamp.toI32() - subgraph.versionCount = BigInt.fromI32(0) + subgraph.versionCount = BIGINT_ZERO subgraph.active = true subgraph.startedTransferToL2 = false subgraph.transferredToL2 = false @@ -64,14 +70,14 @@ export function createOrLoadSubgraph( subgraph.nftID = bigIntID.toString() subgraph.entityVersion = 2 - subgraph.signalledTokens = BigInt.fromI32(0) - subgraph.unsignalledTokens = BigInt.fromI32(0) - subgraph.nameSignalAmount = BigInt.fromI32(0) + subgraph.signalledTokens = BIGINT_ZERO + subgraph.unsignalledTokens = BIGINT_ZERO + subgraph.nameSignalAmount = BIGINT_ZERO subgraph.reserveRatio = 0 - subgraph.withdrawableTokens = BigInt.fromI32(0) - subgraph.withdrawnTokens = BigInt.fromI32(0) - subgraph.signalledTokensSentToL2 = BigInt.fromI32(0) - subgraph.signalledTokensReceivedOnL2 = BigInt.fromI32(0) + subgraph.withdrawableTokens = BIGINT_ZERO + subgraph.withdrawnTokens = BIGINT_ZERO + subgraph.signalledTokensSentToL2 = BIGINT_ZERO + subgraph.signalledTokensReceivedOnL2 = BIGINT_ZERO subgraph.save() @@ -83,7 +89,7 @@ export function createOrLoadSubgraph( } export function createOrLoadSubgraphDeployment( - subgraphID: string, + subgraphID: Bytes, timestamp: BigInt, ): SubgraphDeployment { let graphNetwork = createOrLoadGraphNetwork() @@ -91,22 +97,22 @@ export function createOrLoadSubgraphDeployment( if (deployment == null) { deployment = new SubgraphDeployment(subgraphID) deployment.createdAt = timestamp.toI32() - deployment.stakedTokens = BigInt.fromI32(0) - deployment.indexingRewardAmount = BigInt.fromI32(0) - deployment.indexingIndexerRewardAmount = BigInt.fromI32(0) - deployment.indexingDelegatorRewardAmount = BigInt.fromI32(0) - deployment.queryFeesAmount = BigInt.fromI32(0) - deployment.queryFeeRebates = BigInt.fromI32(0) - deployment.delegatorQueryFees = BigInt.fromI32(0) - deployment.curatorFeeRewards = BigInt.fromI32(0) + deployment.stakedTokens = BIGINT_ZERO + deployment.indexingRewardAmount = BIGINT_ZERO + deployment.indexingIndexerRewardAmount = BIGINT_ZERO + deployment.indexingDelegatorRewardAmount = BIGINT_ZERO + deployment.queryFeesAmount = BIGINT_ZERO + deployment.queryFeeRebates = BIGINT_ZERO + deployment.delegatorQueryFees = BIGINT_ZERO + deployment.curatorFeeRewards = BIGINT_ZERO deployment.transferredToL2 = false - deployment.signalledTokensSentToL2 = BigInt.fromI32(0) - deployment.signalledTokensReceivedOnL2 = BigInt.fromI32(0) + deployment.signalledTokensSentToL2 = BIGINT_ZERO + deployment.signalledTokensReceivedOnL2 = BIGINT_ZERO - deployment.signalledTokens = BigInt.fromI32(0) - deployment.unsignalledTokens = BigInt.fromI32(0) - deployment.signalAmount = BigInt.fromI32(0) - deployment.pricePerShare = BigDecimal.fromString('0') + deployment.signalledTokens = BIGINT_ZERO + deployment.unsignalledTokens = BIGINT_ZERO + deployment.signalAmount = BIGINT_ZERO + deployment.pricePerShare = BIGDECIMAL_ZERO deployment.reserveRatio = graphNetwork.defaultReserveRatio deployment.deniedAt = 0 deployment.save() @@ -117,7 +123,7 @@ export function createOrLoadSubgraphDeployment( return deployment as SubgraphDeployment } -export function createOrLoadIndexer(id: string, timestamp: BigInt): Indexer { +export function createOrLoadIndexer(id: Bytes, timestamp: BigInt): Indexer { let indexer = Indexer.load(id) if (indexer == null) { createOrLoadGraphAccount(id, timestamp) @@ -125,43 +131,43 @@ export function createOrLoadIndexer(id: string, timestamp: BigInt): Indexer { indexer.createdAt = timestamp.toI32() indexer.account = id - indexer.stakedTokens = BigInt.fromI32(0) - indexer.allocatedTokens = BigInt.fromI32(0) - indexer.lockedTokens = BigInt.fromI32(0) - indexer.unstakedTokens = BigInt.fromI32(0) + indexer.stakedTokens = BIGINT_ZERO + indexer.allocatedTokens = BIGINT_ZERO + indexer.lockedTokens = BIGINT_ZERO + indexer.unstakedTokens = BIGINT_ZERO indexer.tokensLockedUntil = 0 - indexer.queryFeesCollected = BigInt.fromI32(0) - indexer.queryFeeRebates = BigInt.fromI32(0) - indexer.rewardsEarned = BigInt.fromI32(0) - indexer.indexerRewardsOwnGenerationRatio = BigDecimal.fromString('0') - - indexer.delegatedCapacity = BigInt.fromI32(0) - indexer.tokenCapacity = BigInt.fromI32(0) - indexer.availableStake = BigInt.fromI32(0) - - indexer.delegatedTokens = BigInt.fromI32(0) - indexer.ownStakeRatio = BigDecimal.fromString('0') - indexer.delegatedStakeRatio = BigDecimal.fromString('0') - indexer.delegatorShares = BigInt.fromI32(0) - indexer.delegationExchangeRate = BigDecimal.fromString('1') + indexer.queryFeesCollected = BIGINT_ZERO + indexer.queryFeeRebates = BIGINT_ZERO + indexer.rewardsEarned = BIGINT_ZERO + indexer.indexerRewardsOwnGenerationRatio = BIGDECIMAL_ZERO + + indexer.delegatedCapacity = BIGINT_ZERO + indexer.tokenCapacity = BIGINT_ZERO + indexer.availableStake = BIGINT_ZERO + + indexer.delegatedTokens = BIGINT_ZERO + indexer.ownStakeRatio = BIGDECIMAL_ZERO + indexer.delegatedStakeRatio = BIGDECIMAL_ZERO + indexer.delegatorShares = BIGINT_ZERO + indexer.delegationExchangeRate = BIGDECIMAL_ONE indexer.indexingRewardCut = 0 - indexer.indexingRewardEffectiveCut = BigDecimal.fromString('0') - indexer.overDelegationDilution = BigDecimal.fromString('0') - indexer.delegatorIndexingRewards = BigInt.fromI32(0) - indexer.indexerIndexingRewards = BigInt.fromI32(0) - indexer.delegatorQueryFees = BigInt.fromI32(0) + indexer.indexingRewardEffectiveCut = BIGDECIMAL_ZERO + indexer.overDelegationDilution = BIGDECIMAL_ZERO + indexer.delegatorIndexingRewards = BIGINT_ZERO + indexer.indexerIndexingRewards = BIGINT_ZERO + indexer.delegatorQueryFees = BIGINT_ZERO indexer.queryFeeCut = 0 - indexer.queryFeeEffectiveCut = BigDecimal.fromString('0') + indexer.queryFeeEffectiveCut = BIGDECIMAL_ZERO indexer.delegatorParameterCooldown = 0 indexer.lastDelegationParameterUpdate = 0 indexer.forcedClosures = 0 indexer.allocationCount = 0 - indexer.totalAllocationCount = BigInt.fromI32(0) + indexer.totalAllocationCount = BIGINT_ZERO indexer.transferredToL2 = false - indexer.stakedTokensTransferredToL2 = BigInt.fromI32(0) + indexer.stakedTokensTransferredToL2 = BIGINT_ZERO - indexer.delegatorsCount = BigInt.fromI32(0) + indexer.delegatorsCount = BIGINT_ZERO let graphNetwork = createOrLoadGraphNetwork() graphNetwork.indexerCount = graphNetwork.indexerCount + 1 @@ -172,21 +178,21 @@ export function createOrLoadIndexer(id: string, timestamp: BigInt): Indexer { return indexer as Indexer } -export function createOrLoadDelegator(id: string, timestamp: BigInt): Delegator { +export function createOrLoadDelegator(id: Bytes, timestamp: BigInt): Delegator { let delegator = Delegator.load(id) if (delegator == null) { createOrLoadGraphAccount(id, timestamp) delegator = new Delegator(id) delegator.account = id - delegator.stakedTokens = BigInt.fromI32(0) - delegator.lockedTokens = BigInt.fromI32(0) - delegator.totalStakedTokens = BigInt.fromI32(0) - delegator.totalUnstakedTokens = BigInt.fromI32(0) + delegator.stakedTokens = BIGINT_ZERO + delegator.lockedTokens = BIGINT_ZERO + delegator.totalStakedTokens = BIGINT_ZERO + delegator.totalUnstakedTokens = BIGINT_ZERO delegator.createdAt = timestamp.toI32() - delegator.totalRealizedRewards = BigDecimal.fromString('0') - delegator.totalUnrealizedRewards = BigDecimal.fromString('0') - delegator.originalDelegation = BigDecimal.fromString('0') - delegator.currentDelegation = BigDecimal.fromString('0') + delegator.totalRealizedRewards = BIGDECIMAL_ZERO + delegator.totalUnrealizedRewards = BIGDECIMAL_ZERO + delegator.originalDelegation = BIGDECIMAL_ZERO + delegator.currentDelegation = BIGDECIMAL_ZERO delegator.stakesCount = 0 delegator.activeStakesCount = 0 delegator.save() @@ -200,46 +206,40 @@ export function createOrLoadDelegator(id: string, timestamp: BigInt): Delegator export function createOrLoadDelegatedStake( delegator: Delegator, - indexer: string, + indexer: Bytes, timestamp: i32, ): DelegatedStake { - let id = joinID([delegator.id, indexer]) + let id = compoundId(delegator.id, indexer) let delegatedStake = DelegatedStake.load(id) if (delegatedStake == null) { let indexerEntity = Indexer.load(indexer)! - let relationId = compoundId(indexer, indexerEntity.delegatorsCount.toString()) - delegatedStake = new DelegatedStake(id) delegatedStake.indexer = indexer delegatedStake.delegator = delegator.id - delegatedStake.stakedTokens = BigInt.fromI32(0) - delegatedStake.totalStakedTokens = BigInt.fromI32(0) - delegatedStake.totalUnstakedTokens = BigInt.fromI32(0) - delegatedStake.lockedTokens = BigInt.fromI32(0) + delegatedStake.stakedTokens = BIGINT_ZERO + delegatedStake.totalStakedTokens = BIGINT_ZERO + delegatedStake.totalUnstakedTokens = BIGINT_ZERO + delegatedStake.lockedTokens = BIGINT_ZERO delegatedStake.lockedUntil = 0 - delegatedStake.shareAmount = BigInt.fromI32(0) + delegatedStake.shareAmount = BIGINT_ZERO delegatedStake.transferredToL2 = false - delegatedStake.stakedTokensTransferredToL2 = BigInt.fromI32(0) - delegatedStake.personalExchangeRate = BigDecimal.fromString('1') - delegatedStake.latestIndexerExchangeRate = BigDecimal.fromString('1') - delegatedStake.realizedRewards = BigDecimal.fromString('0') - delegatedStake.unrealizedRewards = BigDecimal.fromString('0') - delegatedStake.originalDelegation = BigDecimal.fromString('0') - delegatedStake.currentDelegation = BigDecimal.fromString('0') + delegatedStake.stakedTokensTransferredToL2 = BIGINT_ZERO + delegatedStake.personalExchangeRate = BIGDECIMAL_ONE + delegatedStake.latestIndexerExchangeRate = BIGDECIMAL_ONE + delegatedStake.realizedRewards = BIGDECIMAL_ZERO + delegatedStake.unrealizedRewards = BIGDECIMAL_ZERO + delegatedStake.originalDelegation = BIGDECIMAL_ZERO + delegatedStake.currentDelegation = BIGDECIMAL_ZERO delegatedStake.createdAt = timestamp - delegatedStake.relation = relationId + delegatedStake.relation = id delegatedStake.save() - let relation = new IndexerDelegatedStakeRelation(relationId) - - relation.indexer = indexerEntity.id - relation.stake = delegatedStake.id - relation.delegator = delegator.id - relation.active = true + let relation = new IndexerDelegatedStakeRelation(id) // minimal amount of data to avoid running out of memory + relation.indexer = indexerEntity.id // only needed for field derivation and active status relation.save() - indexerEntity.delegatorsCount = indexerEntity.delegatorsCount.plus(BigInt.fromI32(1)) + indexerEntity.delegatorsCount = indexerEntity.delegatorsCount.plus(BIGINT_ONE) indexerEntity.save() delegator.stakesCount = delegator.stakesCount + 1 @@ -248,25 +248,25 @@ export function createOrLoadDelegatedStake( return delegatedStake as DelegatedStake } -export function createOrLoadCurator(id: string, timestamp: BigInt): Curator { +export function createOrLoadCurator(id: Bytes, timestamp: BigInt): Curator { let curator = Curator.load(id) if (curator == null) { curator = new Curator(id) curator.createdAt = timestamp.toI32() - curator.totalSignalledTokens = BigInt.fromI32(0) - curator.totalUnsignalledTokens = BigInt.fromI32(0) - - curator.totalNameSignalledTokens = BigInt.fromI32(0) - curator.totalNameUnsignalledTokens = BigInt.fromI32(0) - curator.totalWithdrawnTokens = BigInt.fromI32(0) - - curator.realizedRewards = BigInt.fromI32(0) - curator.annualizedReturn = BigDecimal.fromString('0') - curator.totalReturn = BigDecimal.fromString('0') - curator.signalingEfficiency = BigDecimal.fromString('0') - curator.totalNameSignalAverageCostBasis = BigDecimal.fromString('0') - curator.totalNameSignal = BigDecimal.fromString('0') - curator.totalAverageCostBasisPerNameSignal = BigDecimal.fromString('0') + curator.totalSignalledTokens = BIGINT_ZERO + curator.totalUnsignalledTokens = BIGINT_ZERO + + curator.totalNameSignalledTokens = BIGINT_ZERO + curator.totalNameUnsignalledTokens = BIGINT_ZERO + curator.totalWithdrawnTokens = BIGINT_ZERO + + curator.realizedRewards = BIGINT_ZERO + curator.annualizedReturn = BIGDECIMAL_ZERO + curator.totalReturn = BIGDECIMAL_ZERO + curator.signalingEfficiency = BIGDECIMAL_ZERO + curator.totalNameSignalAverageCostBasis = BIGDECIMAL_ZERO + curator.totalNameSignal = BIGDECIMAL_ZERO + curator.totalAverageCostBasisPerNameSignal = BIGDECIMAL_ZERO curator.save() let graphNetwork = createOrLoadGraphNetwork() @@ -276,29 +276,29 @@ export function createOrLoadCurator(id: string, timestamp: BigInt): Curator { return curator as Curator } -export function createOrLoadSignal(curator: string, subgraphDeploymentID: string): Signal { - let signalID = joinID([curator, subgraphDeploymentID]) +export function createOrLoadSignal(curator: Bytes, subgraphDeploymentID: Bytes): Signal { + let signalID = compoundId(curator, subgraphDeploymentID) let signal = Signal.load(signalID) if (signal == null) { signal = new Signal(signalID) signal.curator = curator signal.subgraphDeployment = subgraphDeploymentID - signal.signalledTokens = BigInt.fromI32(0) - signal.unsignalledTokens = BigInt.fromI32(0) - signal.signal = BigInt.fromI32(0) + signal.signalledTokens = BIGINT_ZERO + signal.unsignalledTokens = BIGINT_ZERO + signal.signal = BIGINT_ZERO signal.lastSignalChange = 0 - signal.realizedRewards = BigInt.fromI32(0) + signal.realizedRewards = BIGINT_ZERO signal.save() } return signal as Signal } export function createOrLoadNameSignal( - curator: string, - subgraphID: string, + curator: Bytes, + subgraphID: Bytes, timestamp: BigInt, ): NameSignal { - let nameSignalID = joinID([curator, subgraphID]) + let nameSignalID = compoundId(curator, subgraphID) let nameSignal = NameSignal.load(nameSignalID) if (nameSignal == null) { nameSignal = new NameSignal(nameSignalID) @@ -306,39 +306,39 @@ export function createOrLoadNameSignal( nameSignal.entityVersion = 2 nameSignal.curator = underlyingCurator.id nameSignal.subgraph = subgraphID - nameSignal.signalledTokens = BigInt.fromI32(0) - nameSignal.unsignalledTokens = BigInt.fromI32(0) - nameSignal.withdrawnTokens = BigInt.fromI32(0) - nameSignal.nameSignal = BigInt.fromI32(0) + nameSignal.signalledTokens = BIGINT_ZERO + nameSignal.unsignalledTokens = BIGINT_ZERO + nameSignal.withdrawnTokens = BIGINT_ZERO + nameSignal.nameSignal = BIGINT_ZERO nameSignal.lastNameSignalChange = 0 - nameSignal.realizedRewards = BigInt.fromI32(0) - nameSignal.signalledTokensSentToL2 = BigInt.fromI32(0) - nameSignal.signalledTokensReceivedOnL2 = BigInt.fromI32(0) + nameSignal.realizedRewards = BIGINT_ZERO + nameSignal.signalledTokensSentToL2 = BIGINT_ZERO + nameSignal.signalledTokensReceivedOnL2 = BIGINT_ZERO nameSignal.transferredToL2 = false - nameSignal.averageCostBasis = BigDecimal.fromString('0') - nameSignal.averageCostBasisPerSignal = BigDecimal.fromString('0') + nameSignal.averageCostBasis = BIGDECIMAL_ZERO + nameSignal.averageCostBasisPerSignal = BIGDECIMAL_ZERO nameSignal.save() } return nameSignal as NameSignal } export function createOrLoadPool(id: BigInt): Pool { - let pool = Pool.load(id.toString()) + let pool = Pool.load(changetype(Bytes.fromBigInt(id))) if (pool == null) { - pool = new Pool(id.toString()) - pool.allocation = BigInt.fromI32(0) - pool.totalQueryFees = BigInt.fromI32(0) - pool.claimedFees = BigInt.fromI32(0) - pool.curatorRewards = BigInt.fromI32(0) + pool = new Pool(changetype(Bytes.fromBigInt(id))) + pool.allocation = BIGINT_ZERO + pool.totalQueryFees = BIGINT_ZERO + pool.claimedFees = BIGINT_ZERO + pool.curatorRewards = BIGINT_ZERO pool.save() } return pool as Pool } export function createOrLoadGraphNetwork(): GraphNetwork { - let graphNetwork = GraphNetwork.load('1') + let graphNetwork = GraphNetwork.load(Bytes.fromI32(1)) if (graphNetwork == null) { - graphNetwork = new GraphNetwork('1') + graphNetwork = new GraphNetwork(Bytes.fromI32(1)) // let contract = GraphNetwork.bind(event.params.a) // most of the parameters below are updated in the constructor, or else @@ -346,25 +346,25 @@ export function createOrLoadGraphNetwork(): GraphNetwork { graphNetwork.delegationRatio = 0 graphNetwork.defaultReserveRatio = 0 - graphNetwork.totalTokensStaked = BigInt.fromI32(0) - graphNetwork.totalTokensClaimable = BigInt.fromI32(0) - graphNetwork.totalUnstakedTokensLocked = BigInt.fromI32(0) - graphNetwork.totalTokensAllocated = BigInt.fromI32(0) - graphNetwork.totalDelegatedTokens = BigInt.fromI32(0) + graphNetwork.totalTokensStaked = BIGINT_ZERO + graphNetwork.totalTokensClaimable = BIGINT_ZERO + graphNetwork.totalUnstakedTokensLocked = BIGINT_ZERO + graphNetwork.totalTokensAllocated = BIGINT_ZERO + graphNetwork.totalDelegatedTokens = BIGINT_ZERO - graphNetwork.totalQueryFees = BigInt.fromI32(0) - graphNetwork.totalIndexerQueryFeesCollected = BigInt.fromI32(0) - graphNetwork.totalIndexerQueryFeeRebates = BigInt.fromI32(0) - graphNetwork.totalDelegatorQueryFeeRebates = BigInt.fromI32(0) - graphNetwork.totalCuratorQueryFees = BigInt.fromI32(0) - graphNetwork.totalTaxedQueryFees = BigInt.fromI32(0) - graphNetwork.totalUnclaimedQueryFeeRebates = BigInt.fromI32(0) + graphNetwork.totalQueryFees = BIGINT_ZERO + graphNetwork.totalIndexerQueryFeesCollected = BIGINT_ZERO + graphNetwork.totalIndexerQueryFeeRebates = BIGINT_ZERO + graphNetwork.totalDelegatorQueryFeeRebates = BIGINT_ZERO + graphNetwork.totalCuratorQueryFees = BIGINT_ZERO + graphNetwork.totalTaxedQueryFees = BIGINT_ZERO + graphNetwork.totalUnclaimedQueryFeeRebates = BIGINT_ZERO - graphNetwork.totalIndexingRewards = BigInt.fromI32(0) - graphNetwork.totalIndexingIndexerRewards = BigInt.fromI32(0) - graphNetwork.totalIndexingDelegatorRewards = BigInt.fromI32(0) + graphNetwork.totalIndexingRewards = BIGINT_ZERO + graphNetwork.totalIndexingIndexerRewards = BIGINT_ZERO + graphNetwork.totalIndexingDelegatorRewards = BIGINT_ZERO - graphNetwork.totalTokensSignalled = BigInt.fromI32(0) + graphNetwork.totalTokensSignalled = BIGINT_ZERO graphNetwork.indexerCount = 0 graphNetwork.stakedIndexersCount = 0 @@ -401,17 +401,21 @@ export function concatByteArrays(a: ByteArray, b: ByteArray): ByteArray { } export function getVersionNumber( - graphAccount: string, - subgraphNumber: string, + graphAccount: Bytes, + subgraphNumber: Bytes, versionNumber: BigInt, ): BigInt { // create versionID. start at version 1 // TODO - should I start it at 0? - let versionID = joinID([graphAccount, subgraphNumber, versionNumber.toString()]) + let versionID = joinID([ + graphAccount, + subgraphNumber, + changetype(Bytes.fromBigInt(versionNumber)), + ]) let version = SubgraphVersion.load(versionID) // recursion until you get the right version if (version != null) { - versionNumber = versionNumber.plus(BigInt.fromI32(1)) + versionNumber = versionNumber.plus(BIGINT_ONE) getVersionNumber(graphAccount, subgraphNumber, versionNumber) } return versionNumber @@ -426,8 +430,8 @@ export function resolveName(graphAccount: Address, name: string, node: Bytes): s if (checkTLD(name, node.toHexString())) { if (verifyNameOwnership(graphAccountString, node)) { let nameSystem = 'ENS' - let id = joinID([nameSystem, node.toHexString()]) - createGraphAccountName(id, nameSystem, name, graphAccountString) + let id = joinIDString([nameSystem, node.toHexString()]) + createGraphAccountName(id, nameSystem, name, graphAccount) // All checks have passed: save the new name and return the ID to be stored on the subgraph return id } @@ -480,7 +484,7 @@ function createGraphAccountName( id: string, nameSystem: string, name: string, - graphAccount: string, + graphAccount: Bytes, ): void { let graphAccountName = GraphAccountName.load(id) // This name is new, so lets register it @@ -492,9 +496,12 @@ function createGraphAccountName( graphAccountName.save() // check that this name is not already used by another graph account (changing ownership) // If so, remove the old owner, and set the new one - } else if (graphAccountName.graphAccount != graphAccount) { + } else if ( + graphAccountName.graphAccount === null || + graphAccountName.graphAccount! != graphAccount + ) { // Only update the old graph account if it exists - if (graphAccountName.graphAccount != null) { + if (graphAccountName.graphAccount !== null) { // Set defaultDisplayName to null if they lost ownership of this name let oldGraphAccount = GraphAccount.load(graphAccountName.graphAccount!)! oldGraphAccount.defaultDisplayName = null @@ -506,7 +513,13 @@ function createGraphAccountName( } } -export function joinID(pieces: Array): string { +export function joinID(pieces: Array): Bytes { + return pieces.reduce((acc, elem, index) => { + return index == 0 ? elem : acc.concat(bytesSeparator).concat(elem) + }, Bytes.empty()) +} + +export function joinIDString(pieces: Array): string { return pieces.join('-') } @@ -526,42 +539,40 @@ export function calculateOwnStakeRatio(indexer: Indexer): BigDecimal { let maxPossibleTotalUsable = stakedTokensBD + stakedTokensBD * delegationRatioBD let currentTotalStake = stakedTokensBD + delegatedTokensBD let totalUsable = min(maxPossibleTotalUsable, currentTotalStake) - return totalUsable == BigDecimal.fromString('0') - ? BigDecimal.fromString('0') - : stakedTokensBD / totalUsable + return totalUsable == BIGDECIMAL_ZERO ? BIGDECIMAL_ZERO : stakedTokensBD / totalUsable } export function calculateDelegatedStakeRatio(indexer: Indexer): BigDecimal { // If own stake ratio is 0 it's because there's no usable stake, so we can't say that delegStakeRatio is 100%. // Also, own stake ratio can't be less than 0.0588 with the current delegationRatio, and even if it changes // it can never be 0 and have delegations. - return indexer.ownStakeRatio == BigDecimal.fromString('0') - ? BigDecimal.fromString('0') - : BigDecimal.fromString('1') - indexer.ownStakeRatio + return indexer.ownStakeRatio == BIGDECIMAL_ZERO + ? BIGDECIMAL_ZERO + : BIGDECIMAL_ONE - indexer.ownStakeRatio } export function calculateIndexingRewardEffectiveCut(indexer: Indexer): BigDecimal { let delegatorCut = BigInt.fromI32(1000000 - indexer.indexingRewardCut).toBigDecimal() / BigDecimal.fromString('1000000') - return indexer.delegatedStakeRatio == BigDecimal.fromString('0') - ? BigDecimal.fromString('0') - : BigDecimal.fromString('1') - delegatorCut / indexer.delegatedStakeRatio + return indexer.delegatedStakeRatio == BIGDECIMAL_ZERO + ? BIGDECIMAL_ZERO + : BIGDECIMAL_ONE - delegatorCut / indexer.delegatedStakeRatio } export function calculateQueryFeeEffectiveCut(indexer: Indexer): BigDecimal { let delegatorCut = BigInt.fromI32(1000000 - indexer.queryFeeCut).toBigDecimal() / BigDecimal.fromString('1000000') - return indexer.delegatedStakeRatio == BigDecimal.fromString('0') - ? BigDecimal.fromString('0') - : BigDecimal.fromString('1') - delegatorCut / indexer.delegatedStakeRatio + return indexer.delegatedStakeRatio == BIGDECIMAL_ZERO + ? BIGDECIMAL_ZERO + : BIGDECIMAL_ONE - delegatorCut / indexer.delegatedStakeRatio } export function calculateIndexerRewardOwnGenerationRatio(indexer: Indexer): BigDecimal { let rewardCut = BigInt.fromI32(indexer.indexingRewardCut).toBigDecimal() / BigDecimal.fromString('1000000') - return indexer.ownStakeRatio == BigDecimal.fromString('0') - ? BigDecimal.fromString('0') + return indexer.ownStakeRatio == BIGDECIMAL_ZERO + ? BIGDECIMAL_ZERO : rewardCut / indexer.ownStakeRatio } @@ -571,9 +582,9 @@ export function calculateOverdelegationDilution(indexer: Indexer): BigDecimal { let graphNetwork = createOrLoadGraphNetwork() let delegationRatioBD = BigInt.fromI32(graphNetwork.delegationRatio).toBigDecimal() let maxDelegatedStake = stakedTokensBD * delegationRatioBD - return stakedTokensBD == BigDecimal.fromString('0') - ? BigDecimal.fromString('0') - : BigDecimal.fromString('1') - maxDelegatedStake / max(maxDelegatedStake, delegatedTokensBD) + return stakedTokensBD == BIGDECIMAL_ZERO + ? BIGDECIMAL_ZERO + : BIGDECIMAL_ONE - maxDelegatedStake / max(maxDelegatedStake, delegatedTokensBD) } export function updateAdvancedIndexerMetrics(indexer: Indexer): Indexer { @@ -596,45 +607,43 @@ export function updateDelegationExchangeRate(indexer: Indexer): Indexer { return indexer as Indexer } -export function compoundId(idA: string, idB: string): string { - return idA.concat('-').concat(idB) +export function compoundId(idA: Bytes, idB: Bytes): Bytes { + return idA.concat(bytesSeparator).concat(idB) } -export function batchUpdateDelegatorsForIndexer(indexerId: string, timestamp: BigInt): void { +export function batchUpdateDelegatorsForIndexer(indexerId: Bytes, timestamp: BigInt): void { // Loading it again here to make sure we have the latest up to date data on the entity. let indexer = Indexer.load(indexerId)! // pre-calculates a lot of data for all delegators that exists for a specific indexer - // using already existing links with the indexer-delegatedStake relations - let delegators = indexer.delegators.load() - - for (let i = 0; i < delegators.length; i++) { - if (!delegators[i].shareAmount.isZero()) { - let delegatedStake = delegators[i] - let delegator = Delegator.load(delegatedStake.delegator)! - // Only update core entities if there's a change in the exchange rate - if (delegatedStake.latestIndexerExchangeRate != indexer.delegationExchangeRate) { - let oldUnrealizedRewards = delegatedStake.unrealizedRewards - - delegatedStake.latestIndexerExchangeRate = indexer.delegationExchangeRate - delegatedStake.currentDelegation = - delegatedStake.latestIndexerExchangeRate * delegatedStake.shareAmount.toBigDecimal() - delegatedStake.unrealizedRewards = avoidNegativeRoundingError( - delegatedStake.currentDelegation - delegatedStake.originalDelegation, - ) - delegatedStake.save() - - let diffUnrealized = delegatedStake.unrealizedRewards - oldUnrealizedRewards - - delegator.totalUnrealizedRewards = avoidNegativeRoundingError( - delegator.totalUnrealizedRewards.plus(diffUnrealized), - ) - delegator.currentDelegation = delegator.currentDelegation.plus(diffUnrealized) - delegator.save() - } - - getAndUpdateDelegatedStakeDailyData(delegatedStake as DelegatedStake, timestamp) - getAndUpdateDelegatorDailyData(delegator as Delegator, timestamp) + // uses lightweight relation entity to derive the full list. hopefully it doesn't run out of memory on big deleg count indexers + let relations = indexer.relations.load() + + for (let i = 0; i < relations.length; i++) { + let delegatedStake = DelegatedStake.load(relations[i].id)! + let delegator = Delegator.load(delegatedStake.delegator)! + // Only update core entities if there's a change in the exchange rate + if (delegatedStake.latestIndexerExchangeRate != indexer.delegationExchangeRate) { + let oldUnrealizedRewards = delegatedStake.unrealizedRewards + + delegatedStake.latestIndexerExchangeRate = indexer.delegationExchangeRate + delegatedStake.currentDelegation = + delegatedStake.latestIndexerExchangeRate.times(delegatedStake.shareAmount.toBigDecimal()) + delegatedStake.unrealizedRewards = avoidNegativeRoundingError( + delegatedStake.currentDelegation.minus(delegatedStake.originalDelegation), + ) + delegatedStake.save() + + let diffUnrealized = delegatedStake.unrealizedRewards.minus(oldUnrealizedRewards) + + delegator.totalUnrealizedRewards = avoidNegativeRoundingError( + delegator.totalUnrealizedRewards.plus(diffUnrealized), + ) + delegator.currentDelegation = delegator.currentDelegation.plus(diffUnrealized) + delegator.save() } + + getAndUpdateDelegatedStakeDailyData(delegatedStake as DelegatedStake, timestamp) + getAndUpdateDelegatorDailyData(delegator as Delegator, timestamp) } } @@ -643,17 +652,14 @@ export function getAndUpdateNetworkDailyData( timestamp: BigInt, ): GraphNetworkDailyData { let dayNumber = timestamp.toI32() / SECONDS_PER_DAY - LAUNCH_DAY - let id = compoundId(entity.id, BigInt.fromI32(dayNumber).toString()) - let dailyData = GraphNetworkDailyData.load(id) + let id = compoundId(entity.id, Bytes.fromI32(dayNumber)) - if (dailyData == null) { - dailyData = new GraphNetworkDailyData(id) - - dailyData.dayStart = BigInt.fromI32((timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY) - dailyData.dayEnd = dailyData.dayStart + BigInt.fromI32(SECONDS_PER_DAY) - dailyData.dayNumber = dayNumber - dailyData.network = entity.id - } + // not checking for previous entity since we don't want to waste a load and data will be overwritten anyways + let dailyData = new GraphNetworkDailyData(id) + dailyData.dayStart = BigInt.fromI32((timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY) + dailyData.dayEnd = dailyData.dayStart.plus(BigInt.fromI32(SECONDS_PER_DAY)) + dailyData.dayNumber = dayNumber + dailyData.network = entity.id dailyData.delegationRatio = entity.delegationRatio dailyData.totalTokensStaked = entity.totalTokensStaked @@ -686,19 +692,16 @@ export function getAndUpdateNetworkDailyData( export function getAndUpdateIndexerDailyData(entity: Indexer, timestamp: BigInt): IndexerDailyData { let dayNumber = timestamp.toI32() / SECONDS_PER_DAY - LAUNCH_DAY - let id = compoundId(entity.id, BigInt.fromI32(dayNumber).toString()) - let dailyData = IndexerDailyData.load(id) - - if (dailyData == null) { - dailyData = new IndexerDailyData(id) - - dailyData.dayStart = BigInt.fromI32((timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY) - dailyData.dayEnd = dailyData.dayStart + BigInt.fromI32(SECONDS_PER_DAY) - dailyData.dayNumber = dayNumber - dailyData.indexer = entity.id - dailyData.netDailyDelegatedTokens = BigInt.fromI32(0) - dailyData.delegatorsCount = BigInt.fromI32(0) - } + let id = compoundId(entity.id, Bytes.fromI32(dayNumber)) + + // not checking for previous entity since we don't want to waste a load and data will be overwritten anyways + let dailyData = new IndexerDailyData(id) + dailyData.dayStart = BigInt.fromI32((timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY) + dailyData.dayEnd = dailyData.dayStart.plus(BigInt.fromI32(SECONDS_PER_DAY)) + dailyData.dayNumber = dayNumber + dailyData.indexer = entity.id + dailyData.netDailyDelegatedTokens = BIGINT_ZERO + dailyData.delegatorsCount = BIGINT_ZERO dailyData.stakedTokens = entity.stakedTokens dailyData.delegatedTokens = entity.delegatedTokens @@ -728,21 +731,18 @@ export function getAndUpdateDelegatedStakeDailyData( timestamp: BigInt, ): DelegatedStakeDailyData { let dayNumber = timestamp.toI32() / SECONDS_PER_DAY - LAUNCH_DAY - let stakeId = compoundId(stakeEntity.id, BigInt.fromI32(dayNumber).toString()) - let stakeDailyData = DelegatedStakeDailyData.load(stakeId) - - if (stakeDailyData == null) { - stakeDailyData = new DelegatedStakeDailyData(stakeId) - - stakeDailyData.dayStart = BigInt.fromI32( - (timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY, - ) - stakeDailyData.dayEnd = stakeDailyData.dayStart + BigInt.fromI32(SECONDS_PER_DAY) - stakeDailyData.dayNumber = dayNumber - stakeDailyData.stake = stakeEntity.id - stakeDailyData.delegator = stakeEntity.delegator - stakeDailyData.indexer = stakeEntity.indexer - } + let stakeId = compoundId(stakeEntity.id, Bytes.fromI32(dayNumber)) + + // not checking for previous entity since we don't want to waste a load and data will be overwritten anyways + let stakeDailyData = new DelegatedStakeDailyData(stakeId) + stakeDailyData.dayStart = BigInt.fromI32( + (timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY, + ) + stakeDailyData.dayEnd = stakeDailyData.dayStart.plus(BigInt.fromI32(SECONDS_PER_DAY)) + stakeDailyData.dayNumber = dayNumber + stakeDailyData.stake = stakeEntity.id + stakeDailyData.delegator = stakeEntity.delegator + stakeDailyData.indexer = stakeEntity.indexer stakeDailyData.stakedTokens = stakeEntity.stakedTokens stakeDailyData.lockedTokens = stakeEntity.lockedTokens @@ -764,17 +764,14 @@ export function getAndUpdateDelegatorDailyData( timestamp: BigInt, ): DelegatorDailyData { let dayNumber = timestamp.toI32() / SECONDS_PER_DAY - LAUNCH_DAY - let id = compoundId(entity.id, BigInt.fromI32(dayNumber).toString()) - let dailyData = DelegatorDailyData.load(id) - - if (dailyData == null) { - dailyData = new DelegatorDailyData(id) - - dailyData.dayStart = BigInt.fromI32((timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY) - dailyData.dayEnd = dailyData.dayStart + BigInt.fromI32(SECONDS_PER_DAY) - dailyData.dayNumber = dayNumber - dailyData.delegator = entity.id - } + let id = compoundId(entity.id, Bytes.fromI32(dayNumber)) + + // not checking for previous entity since we don't want to waste a load and data will be overwritten anyways + let dailyData = new DelegatorDailyData(id) + dailyData.dayStart = BigInt.fromI32((timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY) + dailyData.dayEnd = dailyData.dayStart.plus(BigInt.fromI32(SECONDS_PER_DAY)) + dailyData.dayNumber = dayNumber + dailyData.delegator = entity.id dailyData.stakesCount = entity.stakesCount dailyData.activeStakesCount = entity.activeStakesCount @@ -794,17 +791,14 @@ export function getAndUpdateSubgraphDeploymentDailyData( timestamp: BigInt, ): SubgraphDeploymentDailyData { let dayId = timestamp.toI32() / SECONDS_PER_DAY - LAUNCH_DAY - let id = compoundId(entity.id, BigInt.fromI32(dayId).toString()) - let dailyData = SubgraphDeploymentDailyData.load(id) - - if (dailyData == null) { - dailyData = new SubgraphDeploymentDailyData(id) + let id = compoundId(entity.id, Bytes.fromI32(dayId)) - dailyData.dayStart = BigInt.fromI32((timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY) - dailyData.dayEnd = dailyData.dayStart + BigInt.fromI32(SECONDS_PER_DAY) - dailyData.dayNumber = dayId - dailyData.subgraphDeployment = entity.id - } + // not checking for previous entity since we don't want to waste a load and data will be overwritten anyways + let dailyData = new SubgraphDeploymentDailyData(id) + dailyData.dayStart = BigInt.fromI32((timestamp.toI32() / SECONDS_PER_DAY) * SECONDS_PER_DAY) + dailyData.dayEnd = dailyData.dayStart.plus(BigInt.fromI32(SECONDS_PER_DAY)) + dailyData.dayNumber = dayId + dailyData.subgraphDeployment = entity.id dailyData.stakedTokens = entity.stakedTokens dailyData.signalledTokens = entity.signalledTokens @@ -836,8 +830,8 @@ export function calculatePricePerShare(deployment: SubgraphDeployment): BigDecim // HOTFIX for now, if deployment.reserveRatio -> 0, use a known previous default let reserveRatioMultiplier = deployment.reserveRatio == 0 ? 2 : 1000000 / deployment.reserveRatio let pricePerShare = - deployment.signalAmount == BigInt.fromI32(0) - ? BigDecimal.fromString('0') + deployment.signalAmount == BIGINT_ZERO + ? BIGDECIMAL_ZERO : deployment.signalledTokens .toBigDecimal() .div(deployment.signalAmount.toBigDecimal()) @@ -846,19 +840,19 @@ export function calculatePricePerShare(deployment: SubgraphDeployment): BigDecim return pricePerShare } -export function convertBigIntSubgraphIDToBase58(bigIntRepresentation: BigInt): String { +export function convertBigIntSubgraphIDToBase58(bigIntRepresentation: BigInt): Bytes { // Might need to unpad the BigInt since `fromUnsignedBytes` pads one byte with a zero. // Although for the events where the uint256 is provided, we probably don't need to unpad. let hexString = bigIntRepresentation.toHexString() if (hexString.length % 2 != 0) { - log.error('Hex string not even, hex: {}, original: {}. Padding it to even length', [ + log.warning('Hex string not even, hex: {}, original: {}. Padding it to even length', [ hexString, bigIntRepresentation.toString(), ]) hexString = '0x0' + hexString.slice(2) } - let bytes = ByteArray.fromHexString(hexString) - return bytes.toBase58() + let bytes = changetype(ByteArray.fromHexString(hexString)) + return bytes } export function getSubgraphID(graphAccount: Address, subgraphNumber: BigInt): BigInt { @@ -871,95 +865,17 @@ export function getSubgraphID(graphAccount: Address, subgraphNumber: BigInt): Bi return bigIntRepresentation } -export function duplicateOrUpdateSubgraphWithNewID(entity: Subgraph, newID: String, newEntityVersion: i32): Subgraph { - let subgraph = Subgraph.load(newID) - if (subgraph == null) { - subgraph = new Subgraph(newID) - } - - subgraph.owner = entity.owner - //subgraph.currentVersion = entity.currentVersion // currentVersion will have to be updated to be the duplicated SubgraphVersion entity afterwards - subgraph.versionCount = entity.versionCount - subgraph.createdAt = entity.createdAt - subgraph.updatedAt = entity.updatedAt - subgraph.active = entity.active - subgraph.startedTransferToL2 = entity.startedTransferToL2 - subgraph.transferredToL2 = entity.transferredToL2 - subgraph.migrated = entity.migrated - subgraph.nftID = entity.nftID - subgraph.oldID = entity.oldID - subgraph.creatorAddress = entity.creatorAddress - subgraph.subgraphNumber = entity.subgraphNumber - subgraph.initializing = entity.initializing - subgraph.signalledTokens = entity.signalledTokens - subgraph.unsignalledTokens = entity.unsignalledTokens - subgraph.nameSignalAmount = entity.nameSignalAmount - subgraph.reserveRatio = entity.reserveRatio - subgraph.withdrawableTokens = entity.withdrawableTokens - subgraph.withdrawnTokens = entity.withdrawnTokens - subgraph.signalledTokensSentToL2 = entity.signalledTokensSentToL2 - subgraph.signalledTokensReceivedOnL2 = entity.signalledTokensReceivedOnL2 - subgraph.metadataHash = entity.metadataHash - // subgraph.pastVersions = entity.pastVersions This is a derived field, we won't copy, but need to make sure NameSignals are duplicated too. - // subgraph.nameSignals = entity.nameSignals This is a derived field, we won't copy, but need to make sure NameSignals are duplicated too. - // subgraph.categories = entity.categories This is a derived field, we wont' copy, but need to make sure Categories auxiliary entities are properly duplicated too. - - subgraph.entityVersion = newEntityVersion - subgraph.linkedEntity = entity.id // this is the entity id, since for the entity, this value will be this particular entity. - - return subgraph as Subgraph -} - -export function duplicateOrUpdateSubgraphVersionWithNewID(entity: SubgraphVersion, newID: String, newEntityVersion: i32): SubgraphVersion { - let version = SubgraphVersion.load(newID) - if (version == null) { - version = new SubgraphVersion(newID) - } - - version.subgraphDeployment = entity.subgraphDeployment - version.version = entity.version - version.createdAt = entity.createdAt - version.metadataHash = entity.metadataHash - - version.entityVersion = newEntityVersion - version.linkedEntity = entity.id - - return version as SubgraphVersion -} - -export function duplicateOrUpdateNameSignalWithNewID(entity: NameSignal, newID: String, newEntityVersion: i32): NameSignal { - let signal = NameSignal.load(newID) - if (signal == null) { - signal = new NameSignal(newID) - } - - signal.curator = entity.curator - //signal.subgraph = entity.subgraph - signal.signalledTokens = entity.signalledTokens - signal.unsignalledTokens = entity.unsignalledTokens - signal.withdrawnTokens = entity.withdrawnTokens - signal.nameSignal = entity.nameSignal - signal.lastNameSignalChange = entity.lastNameSignalChange - signal.realizedRewards = entity.realizedRewards - signal.averageCostBasis = entity.averageCostBasis - signal.averageCostBasisPerSignal = entity.averageCostBasisPerSignal - signal.transferredToL2 = entity.transferredToL2 - signal.signalledTokensReceivedOnL2 = entity.signalledTokensReceivedOnL2 - signal.signalledTokensSentToL2 = entity.signalledTokensSentToL2 - - signal.entityVersion = newEntityVersion - signal.linkedEntity = entity.id - - return signal as NameSignal -} - export function getAliasedL2SubgraphID(id: BigInt): BigInt { // offset === 0x1111000000000000000000000000000000000000000000000000000000001111 or "7719354826016761135949426780745810995650277145449579228033297493447455805713" // base === 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 1 or "115792089237316195423570985008687907853269984665640564039457584007913129639936" // const expectedL2SubgraphId = l1SubgraphId.add(offset).mod(base) - let offset = BigInt.fromString("7719354826016761135949426780745810995650277145449579228033297493447455805713") - let base = BigInt.fromString("115792089237316195423570985008687907853269984665640564039457584007913129639936") - return (id.plus(offset)).mod(base) + let offset = BigInt.fromString( + '7719354826016761135949426780745810995650277145449579228033297493447455805713', + ) + let base = BigInt.fromString( + '115792089237316195423570985008687907853269984665640564039457584007913129639936', + ) + return id.plus(offset).mod(base) } // TODO - this is broken if we change the delegatio ratio @@ -977,4 +893,4 @@ export function calculateCapacities(indexer: Indexer): Indexer { .minus(indexer.allocatedTokens) .minus(indexer.lockedTokens) return indexer -} \ No newline at end of file +} diff --git a/src/mappings/ipfs.ts b/src/mappings/ipfs.ts index db5c86e..65c4e67 100644 --- a/src/mappings/ipfs.ts +++ b/src/mappings/ipfs.ts @@ -1,11 +1,9 @@ import { json, Bytes, dataSource, JSONValueKind, log } from '@graphprotocol/graph-ts' -import { - GraphAccountMetadata -} from '../types/schema' +import { GraphAccountMetadata } from '../types/schema' import { jsonToString } from './utils' export function handleGraphAccountMetadata(content: Bytes): void { - let id = dataSource.context().getString("id") + let id = dataSource.context().getBytes('id') let graphAccountMetadata = new GraphAccountMetadata(id) let tryData = json.try_fromBytes(content) if (tryData.isOk) { @@ -21,4 +19,4 @@ export function handleGraphAccountMetadata(content: Bytes): void { graphAccountMetadata.website = jsonToString(data.get('website')) graphAccountMetadata.save() } -} \ No newline at end of file +} diff --git a/src/mappings/l1gns.ts b/src/mappings/l1gns.ts index 6298101..368dc78 100644 --- a/src/mappings/l1gns.ts +++ b/src/mappings/l1gns.ts @@ -1,13 +1,14 @@ -import { BigDecimal, BigInt, log } from '@graphprotocol/graph-ts' +import { BigInt } from '@graphprotocol/graph-ts' import { SubgraphSentToL2, CuratorBalanceSentToL2 } from '../types/L1GNS/L1GNS' import { Subgraph, NameSignal, SubgraphVersion, SubgraphDeployment } from '../types/schema' import { - joinID, convertBigIntSubgraphIDToBase58, getAliasedL2SubgraphID, getAndUpdateSubgraphDeploymentDailyData, + compoundId, + BIGINT_ZERO, } from './helpers' /* @@ -22,14 +23,14 @@ export function handleSubgraphSentToL2(event: SubgraphSentToL2): void { let bigIntID = event.params._subgraphID let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let l2id = convertBigIntSubgraphIDToBase58(getAliasedL2SubgraphID(bigIntID)) - let nameSignalID = joinID([event.params._l1Owner.toHexString(), subgraphID]) - let nameSignalL2id = joinID([event.params._l2Owner.toHexString(), l2id]) + let nameSignalID = compoundId(event.params._l1Owner, subgraphID) + let nameSignalL2id = compoundId(event.params._l2Owner, l2id) let nameSignal = NameSignal.load(nameSignalID)! nameSignal.transferredToL2 = true nameSignal.transferredToL2At = event.block.timestamp nameSignal.transferredToL2AtBlockNumber = event.block.number - nameSignal.transferredToL2AtTx = event.transaction.hash.toHexString() + nameSignal.transferredToL2AtTx = event.transaction.hash nameSignal.idOnL1 = nameSignalID nameSignal.idOnL2 = nameSignalL2id nameSignal.signalledTokensSentToL2 = nameSignal.signalledTokensSentToL2.plus(event.params._tokens) @@ -39,22 +40,25 @@ export function handleSubgraphSentToL2(event: SubgraphSentToL2): void { // tokensForL2.mul(totalSignal).div(ownerNSignal) = curationTokens let subgraph = Subgraph.load(subgraphID)! - subgraph.active = false; + subgraph.active = false subgraph.startedTransferToL2 = true subgraph.startedTransferToL2At = event.block.timestamp subgraph.startedTransferToL2AtBlockNumber = event.block.number - subgraph.startedTransferToL2AtTx = event.transaction.hash.toHexString() + subgraph.startedTransferToL2AtTx = event.transaction.hash subgraph.signalledTokensSentToL2 = subgraph.signalledTokensSentToL2.plus(event.params._tokens) subgraph.idOnL1 = subgraphID subgraph.idOnL2 = l2id - - let curationTokens = event.params._tokens.times(subgraph.nameSignalAmount).div(nameSignal.nameSignal) + + let curationTokens = event.params._tokens + .times(subgraph.nameSignalAmount) + .div(nameSignal.nameSignal) subgraph.nameSignalAmount = subgraph.nameSignalAmount.minus(nameSignal.nameSignal) let withdrawable = curationTokens.minus(event.params._tokens) - subgraph.withdrawableTokens = withdrawable == BigInt.fromI32(-1) ? BigInt.fromI32(0) : withdrawable; // to fix rounding error in AS + subgraph.withdrawableTokens = + withdrawable == BigInt.fromI32(-1) ? BIGINT_ZERO : withdrawable // to fix rounding error in AS - nameSignal.nameSignal = BigInt.fromI32(0); + nameSignal.nameSignal = BIGINT_ZERO //nameSignal.signal = BigDecimal.fromString('0'); nameSignal.lastNameSignalChange = event.block.number.toI32() @@ -66,11 +70,11 @@ export function handleSubgraphSentToL2(event: SubgraphSentToL2): void { deployment.transferredToL2 = true deployment.transferredToL2At = event.block.timestamp deployment.transferredToL2AtBlockNumber = event.block.number - deployment.transferredToL2AtTx = event.transaction.hash.toHexString() + deployment.transferredToL2AtTx = event.transaction.hash deployment.signalledTokensSentToL2 = deployment.signalledTokensSentToL2.plus(event.params._tokens) deployment.save() - getAndUpdateSubgraphDeploymentDailyData(deployment, event.block.timestamp); + getAndUpdateSubgraphDeploymentDailyData(deployment, event.block.timestamp) } /* @@ -85,26 +89,27 @@ export function handleCuratorBalanceSentToL2(event: CuratorBalanceSentToL2): voi let bigIntID = event.params._subgraphID let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let subgraphL2id = convertBigIntSubgraphIDToBase58(getAliasedL2SubgraphID(bigIntID)) - let nameSignalID = joinID([event.params._l1Curator.toHexString(), subgraphID]) - let nameSignalL2id = joinID([event.params._l2Beneficiary.toHexString(), subgraphL2id]) + let nameSignalID = compoundId(event.params._l1Curator, subgraphID) + let nameSignalL2id = compoundId(event.params._l2Beneficiary, subgraphL2id) let nameSignal = NameSignal.load(nameSignalID)! nameSignal.transferredToL2 = true nameSignal.transferredToL2At = event.block.timestamp nameSignal.transferredToL2AtBlockNumber = event.block.number - nameSignal.transferredToL2AtTx = event.transaction.hash.toHexString() + nameSignal.transferredToL2AtTx = event.transaction.hash nameSignal.idOnL1 = nameSignalID nameSignal.idOnL2 = nameSignalL2id nameSignal.signalledTokensSentToL2 = nameSignal.signalledTokensSentToL2.plus(event.params._tokens) - + let subgraph = Subgraph.load(subgraphID)! subgraph.signalledTokensSentToL2 = subgraph.signalledTokensSentToL2.plus(event.params._tokens) subgraph.nameSignalAmount = subgraph.nameSignalAmount.minus(nameSignal.nameSignal) let withdrawable = subgraph.withdrawableTokens.minus(event.params._tokens) - subgraph.withdrawableTokens = withdrawable == BigInt.fromI32(-1) ? BigInt.fromI32(0) : withdrawable; // to fix rounding error in AS + subgraph.withdrawableTokens = + withdrawable == BigInt.fromI32(-1) ? BIGINT_ZERO : withdrawable // to fix rounding error in AS - nameSignal.nameSignal = BigInt.fromI32(0); + nameSignal.nameSignal = BIGINT_ZERO //nameSignal.signal = BigDecimal.fromString('0'); nameSignal.lastNameSignalChange = event.block.number.toI32() @@ -116,5 +121,5 @@ export function handleCuratorBalanceSentToL2(event: CuratorBalanceSentToL2): voi deployment.signalledTokensSentToL2 = deployment.signalledTokensSentToL2.plus(event.params._tokens) deployment.save() - getAndUpdateSubgraphDeploymentDailyData(deployment, event.block.timestamp); + getAndUpdateSubgraphDeploymentDailyData(deployment, event.block.timestamp) } diff --git a/src/mappings/l1staking.ts b/src/mappings/l1staking.ts index 1cea547..3b44ce1 100644 --- a/src/mappings/l1staking.ts +++ b/src/mappings/l1staking.ts @@ -5,18 +5,23 @@ import { StakeDelegatedUnlockedDueToL2Transfer, } from '../types/L1Staking/L1Staking' -import { Indexer, DelegatedStake, GraphNetwork, Delegator, IndexerDelegatedStakeRelation } from '../types/schema' +import { + Indexer, + DelegatedStake, + GraphNetwork, + Delegator, + IndexerDelegatedStakeRelation, +} from '../types/schema' import { calculateCapacities, - joinID, updateAdvancedIndexerMetrics, updateDelegationExchangeRate, getAndUpdateDelegatedStakeDailyData, getAndUpdateIndexerDailyData, - getAndUpdateDelegatorDailyData, createOrLoadGraphNetwork, - // batchUpdateDelegatorsForIndexer, getAndUpdateNetworkDailyData, + compoundId, + BIGINT_ZERO, } from './helpers' /* @@ -29,7 +34,7 @@ import { ); */ export function handleIndexerStakeTransferredToL2(event: IndexerStakeTransferredToL2): void { - let indexer = Indexer.load(event.params.indexer.toHexString())! + let indexer = Indexer.load(event.params.indexer)! indexer.stakedTokensTransferredToL2 = indexer.stakedTokensTransferredToL2.plus( event.params.transferredStakeTokens, ) @@ -37,23 +42,25 @@ export function handleIndexerStakeTransferredToL2(event: IndexerStakeTransferred indexer.transferredToL2 = true indexer.firstTransferredToL2At = event.block.timestamp indexer.firstTransferredToL2AtBlockNumber = event.block.number - indexer.firstTransferredToL2AtTx = event.transaction.hash.toHexString() - indexer.idOnL2 = event.params.l2Indexer.toHexString() - indexer.idOnL1 = event.params.indexer.toHexString() + indexer.firstTransferredToL2AtTx = event.transaction.hash + indexer.idOnL2 = event.params.l2Indexer + indexer.idOnL1 = event.params.indexer } indexer.stakedTokens = indexer.stakedTokens.minus(event.params.transferredStakeTokens) indexer.lastTransferredToL2At = event.block.timestamp indexer.lastTransferredToL2AtBlockNumber = event.block.number - indexer.lastTransferredToL2AtTx = event.transaction.hash.toHexString() + indexer.lastTransferredToL2AtTx = event.transaction.hash indexer = updateAdvancedIndexerMetrics(indexer as Indexer) indexer = calculateCapacities(indexer as Indexer) indexer.save() - getAndUpdateIndexerDailyData(indexer, event.block.timestamp); + getAndUpdateIndexerDailyData(indexer, event.block.timestamp) // upgrade graph network let graphNetwork = createOrLoadGraphNetwork() - graphNetwork.totalTokensStaked = graphNetwork.totalTokensStaked.minus(event.params.transferredStakeTokens) + graphNetwork.totalTokensStaked = graphNetwork.totalTokensStaked.minus( + event.params.transferredStakeTokens, + ) graphNetwork.save() getAndUpdateNetworkDailyData(graphNetwork as GraphNetwork, event.block.timestamp) @@ -69,43 +76,41 @@ export function handleIndexerStakeTransferredToL2(event: IndexerStakeTransferred ); */ export function handleDelegationTransferredToL2(event: DelegationTransferredToL2): void { - let delegationID = joinID([ - event.params.delegator.toHexString(), - event.params.indexer.toHexString(), - ]) - let delegationIDL2 = joinID([ - event.params.l2Delegator.toHexString(), - event.params.l2Indexer.toHexString(), - ]) + let delegationID = compoundId(event.params.delegator, event.params.indexer) + let delegationIDL2 = compoundId(event.params.l2Delegator, event.params.l2Indexer) let delegation = DelegatedStake.load(delegationID)! let delegatorSharesBefore = delegation.shareAmount delegation.stakedTokensTransferredToL2 = delegation.stakedTokensTransferredToL2.plus( event.params.transferredDelegationTokens, ) - delegation.shareAmount = BigInt.fromI32(0) - delegation.totalUnstakedTokens = delegation.totalUnstakedTokens.plus(event.params.transferredDelegationTokens); + delegation.shareAmount = BIGINT_ZERO + delegation.totalUnstakedTokens = delegation.totalUnstakedTokens.plus( + event.params.transferredDelegationTokens, + ) delegation.transferredToL2 = true delegation.transferredToL2At = event.block.timestamp delegation.transferredToL2AtBlockNumber = event.block.number - delegation.transferredToL2AtTx = event.transaction.hash.toHexString() + delegation.transferredToL2AtTx = event.transaction.hash delegation.idOnL1 = delegationID delegation.idOnL2 = delegationIDL2 - let indexer = Indexer.load(event.params.indexer.toHexString())! + let indexer = Indexer.load(event.params.indexer)! let beforeUpdateDelegationExchangeRate = indexer.delegationExchangeRate indexer.delegatedTokens = indexer.delegatedTokens.minus(event.params.transferredDelegationTokens) indexer.delegatorShares = indexer.delegatorShares.minus(delegatorSharesBefore) - if (indexer.delegatorShares != BigInt.fromI32(0)) { + if (indexer.delegatorShares != BIGINT_ZERO) { indexer = updateDelegationExchangeRate(indexer as Indexer) } indexer = updateAdvancedIndexerMetrics(indexer as Indexer) indexer = calculateCapacities(indexer as Indexer) indexer.save() - getAndUpdateIndexerDailyData(indexer, event.block.timestamp); - getAndUpdateDelegatedStakeDailyData(delegation, event.block.timestamp); + getAndUpdateIndexerDailyData(indexer, event.block.timestamp) + getAndUpdateDelegatedStakeDailyData(delegation, event.block.timestamp) - let currentBalance = delegatorSharesBefore.toBigDecimal().times(beforeUpdateDelegationExchangeRate) + let currentBalance = delegatorSharesBefore + .toBigDecimal() + .times(beforeUpdateDelegationExchangeRate) let oldBalance = delegatorSharesBefore.toBigDecimal().times(delegation.personalExchangeRate) let realizedRewards = currentBalance.minus(oldBalance) let oldOriginalDelegation = delegation.originalDelegation @@ -118,8 +123,10 @@ export function handleDelegationTransferredToL2(event: DelegationTransferredToL2 delegation.save() // update delegator - let delegator = Delegator.load(event.params.delegator.toHexString())! - delegator.totalUnstakedTokens = delegator.totalUnstakedTokens.plus(event.params.transferredDelegationTokens) + let delegator = Delegator.load(event.params.delegator)! + delegator.totalUnstakedTokens = delegator.totalUnstakedTokens.plus( + event.params.transferredDelegationTokens, + ) delegator.totalRealizedRewards = delegator.totalRealizedRewards.plus(realizedRewards) delegator.originalDelegation = delegator.originalDelegation.plus(oldOriginalDelegation) delegator.currentDelegation = delegator.currentDelegation.minus(currentBalance) @@ -132,7 +139,9 @@ export function handleDelegationTransferredToL2(event: DelegationTransferredToL2 // upgrade graph network let graphNetwork = createOrLoadGraphNetwork() - graphNetwork.totalDelegatedTokens = graphNetwork.totalDelegatedTokens.minus(event.params.transferredDelegationTokens) + graphNetwork.totalDelegatedTokens = graphNetwork.totalDelegatedTokens.minus( + event.params.transferredDelegationTokens, + ) graphNetwork.save() // batch update delegs @@ -147,7 +156,7 @@ export function handleDelegationTransferredToL2(event: DelegationTransferredToL2 // De-activate relation with indexer after batch update, so last datapoints are created properly let relation = IndexerDelegatedStakeRelation.load(delegation.relation)! - relation.active = false + relation.indexer = null relation.save() getAndUpdateNetworkDailyData(graphNetwork as GraphNetwork, event.block.timestamp) } @@ -162,8 +171,8 @@ export function handleDelegationTransferredToL2(event: DelegationTransferredToL2 // ): void { // let graphNetwork = GraphNetwork.load('1')! // let delegationID = joinID([ -// event.params.delegator.toHexString(), -// event.params.indexer.toHexString(), +// event.params.delegator, +// event.params.indexer, // ]) // let delegation = DelegatedStake.load(delegationID)! // delegation.lockedUntil = graphNetwork.currentEpoch diff --git a/src/mappings/l2gns.ts b/src/mappings/l2gns.ts index 23d6d29..ce8b771 100644 --- a/src/mappings/l2gns.ts +++ b/src/mappings/l2gns.ts @@ -36,7 +36,7 @@ export function handleSubgraphReceivedFromL1(event: SubgraphReceivedFromL1): voi subgraph.startedTransferToL2 = true subgraph.startedTransferToL2At = event.block.timestamp subgraph.startedTransferToL2AtBlockNumber = event.block.number - subgraph.startedTransferToL2AtTx = event.transaction.hash.toHexString() + subgraph.startedTransferToL2AtTx = event.transaction.hash subgraph.signalledTokensReceivedOnL2 = subgraph.signalledTokensReceivedOnL2.plus( event.params._tokens, ) @@ -56,7 +56,7 @@ export function handleSubgraphL2TransferFinalized(event: SubgraphL2TransferFinal subgraph.transferredToL2 = true subgraph.transferredToL2At = event.block.timestamp subgraph.transferredToL2AtBlockNumber = event.block.number - subgraph.transferredToL2AtTx = event.transaction.hash.toHexString() + subgraph.transferredToL2AtTx = event.transaction.hash subgraph.save() let version = SubgraphVersion.load(subgraph.currentVersion!)! @@ -64,11 +64,11 @@ export function handleSubgraphL2TransferFinalized(event: SubgraphL2TransferFinal deployment.transferredToL2 = true deployment.transferredToL2At = event.block.timestamp deployment.transferredToL2AtBlockNumber = event.block.number - deployment.transferredToL2AtTx = event.transaction.hash.toHexString() + deployment.transferredToL2AtTx = event.transaction.hash deployment.signalledTokensReceivedOnL2 = subgraph.signalledTokensReceivedOnL2 deployment.save() - getAndUpdateSubgraphDeploymentDailyData(deployment, event.block.timestamp); + getAndUpdateSubgraphDeploymentDailyData(deployment, event.block.timestamp) } /// @dev Emitted when the L1 balance for a curator has been claimed @@ -79,14 +79,14 @@ export function handleCuratorBalanceReceived(event: CuratorBalanceReceived): voi let subgraphID = convertBigIntSubgraphIDToBase58(bigIntID) let nameSignal = createOrLoadNameSignal( - event.params._l2Curator.toHexString(), + event.params._l2Curator, subgraphID, event.block.timestamp, ) nameSignal.transferredToL2 = true nameSignal.transferredToL2At = event.block.timestamp nameSignal.transferredToL2AtBlockNumber = event.block.number - nameSignal.transferredToL2AtTx = event.transaction.hash.toHexString() + nameSignal.transferredToL2AtTx = event.transaction.hash nameSignal.idOnL2 = nameSignal.id nameSignal.signalledTokensReceivedOnL2 = nameSignal.signalledTokensReceivedOnL2.plus( event.params._tokens, @@ -106,7 +106,7 @@ export function handleCuratorBalanceReceived(event: CuratorBalanceReceived): voi ) deployment.save() - getAndUpdateSubgraphDeploymentDailyData(deployment, event.block.timestamp); + getAndUpdateSubgraphDeploymentDailyData(deployment, event.block.timestamp) } /// @dev Emitted when the L1 balance for a curator has been returned to the beneficiary. @@ -120,7 +120,9 @@ export function handleCuratorBalanceReceived(event: CuratorBalanceReceived): voi export function handleCuratorBalanceReturnedToBeneficiary( event: CuratorBalanceReturnedToBeneficiary, ): void { - let graphAccount = createOrLoadGraphAccount(event.params._l2Curator.toHexString(), event.block.timestamp) - graphAccount.balanceReceivedFromL1Signalling = graphAccount.balanceReceivedFromL1Signalling.plus(event.params._tokens) + let graphAccount = createOrLoadGraphAccount(event.params._l2Curator, event.block.timestamp) + graphAccount.balanceReceivedFromL1Signalling = graphAccount.balanceReceivedFromL1Signalling.plus( + event.params._tokens, + ) graphAccount.save() } diff --git a/src/mappings/l2staking.ts b/src/mappings/l2staking.ts index d629744..4558c52 100644 --- a/src/mappings/l2staking.ts +++ b/src/mappings/l2staking.ts @@ -1,4 +1,4 @@ -import { TransferredDelegationReturnedToDelegator} from '../types/L2Staking/L2Staking' +import { TransferredDelegationReturnedToDelegator } from '../types/L2Staking/L2Staking' import { createOrLoadGraphAccount } from './helpers' /* @@ -8,8 +8,12 @@ import { createOrLoadGraphAccount } from './helpers' uint256 amount ); */ -export function handleTransferredDelegationReturnedToDelegator(event: TransferredDelegationReturnedToDelegator): void { - let graphAccount = createOrLoadGraphAccount(event.params.indexer.toHexString(), event.block.timestamp) - graphAccount.balanceReceivedFromL1Delegation = graphAccount.balanceReceivedFromL1Delegation.plus(event.params.amount) +export function handleTransferredDelegationReturnedToDelegator( + event: TransferredDelegationReturnedToDelegator, +): void { + let graphAccount = createOrLoadGraphAccount(event.params.indexer, event.block.timestamp) + graphAccount.balanceReceivedFromL1Delegation = graphAccount.balanceReceivedFromL1Delegation.plus( + event.params.amount, + ) graphAccount.save() } diff --git a/src/mappings/rewardsManager.ts b/src/mappings/rewardsManager.ts index beaebba..d007722 100644 --- a/src/mappings/rewardsManager.ts +++ b/src/mappings/rewardsManager.ts @@ -14,19 +14,20 @@ import { getAndUpdateIndexerDailyData, getAndUpdateSubgraphDeploymentDailyData, batchUpdateDelegatorsForIndexer, - getAndUpdateNetworkDailyData + getAndUpdateNetworkDailyData, + BIGINT_ZERO, } from './helpers' export function handleRewardsAssigned(event: RewardsAssigned): void { - let indexerID = event.params.indexer.toHexString() - let allocationID = event.params.allocationID.toHexString() + let indexerID = event.params.indexer + let allocationID = event.params.allocationID // update indexer let indexer = Indexer.load(indexerID)! indexer.rewardsEarned = indexer.rewardsEarned.plus(event.params.amount) // If the delegation pool has zero tokens, the contracts don't give away any rewards let indexerIndexingRewards = - indexer.delegatedTokens == BigInt.fromI32(0) + indexer.delegatedTokens == BIGINT_ZERO ? event.params.amount : event.params.amount .times(BigInt.fromI32(indexer.indexingRewardCut)) @@ -38,7 +39,7 @@ export function handleRewardsAssigned(event: RewardsAssigned): void { indexer.indexerIndexingRewards = indexer.indexerIndexingRewards.plus(indexerIndexingRewards) indexer.delegatedTokens = indexer.delegatedTokens.plus(delegatorIndexingRewards) - if (indexer.delegatorShares != BigInt.fromI32(0)) { + if (indexer.delegatorShares != BIGINT_ZERO) { indexer = updateDelegationExchangeRate(indexer as Indexer) } indexer = updateAdvancedIndexerMetrics(indexer as Indexer) @@ -49,9 +50,8 @@ export function handleRewardsAssigned(event: RewardsAssigned): void { let allocation = Allocation.load(allocationID)! allocation.indexingRewards = allocation.indexingRewards.plus(event.params.amount) allocation.indexingIndexerRewards = allocation.indexingIndexerRewards.plus(indexerIndexingRewards) - allocation.indexingDelegatorRewards = allocation.indexingDelegatorRewards.plus( - delegatorIndexingRewards, - ) + allocation.indexingDelegatorRewards = + allocation.indexingDelegatorRewards.plus(delegatorIndexingRewards) allocation.save() // update subgraph deployment @@ -63,24 +63,21 @@ export function handleRewardsAssigned(event: RewardsAssigned): void { subgraphDeployment.indexingRewardAmount = subgraphDeployment.indexingRewardAmount.plus( event.params.amount, ) - subgraphDeployment.indexingIndexerRewardAmount = subgraphDeployment.indexingIndexerRewardAmount.plus( - indexerIndexingRewards, - ) - subgraphDeployment.indexingDelegatorRewardAmount = subgraphDeployment.indexingDelegatorRewardAmount.plus( - delegatorIndexingRewards, - ) + subgraphDeployment.indexingIndexerRewardAmount = + subgraphDeployment.indexingIndexerRewardAmount.plus(indexerIndexingRewards) + subgraphDeployment.indexingDelegatorRewardAmount = + subgraphDeployment.indexingDelegatorRewardAmount.plus(delegatorIndexingRewards) subgraphDeployment.save() // update graph network let graphNetwork = createOrLoadGraphNetwork() graphNetwork.totalIndexingRewards = graphNetwork.totalIndexingRewards.plus(event.params.amount) - graphNetwork.totalIndexingIndexerRewards = graphNetwork.totalIndexingIndexerRewards.plus( - indexerIndexingRewards, - ) - graphNetwork.totalIndexingDelegatorRewards = graphNetwork.totalIndexingDelegatorRewards.plus( - delegatorIndexingRewards, - ) - graphNetwork.totalDelegatedTokens = graphNetwork.totalDelegatedTokens.plus(delegatorIndexingRewards) + graphNetwork.totalIndexingIndexerRewards = + graphNetwork.totalIndexingIndexerRewards.plus(indexerIndexingRewards) + graphNetwork.totalIndexingDelegatorRewards = + graphNetwork.totalIndexingDelegatorRewards.plus(delegatorIndexingRewards) + graphNetwork.totalDelegatedTokens = + graphNetwork.totalDelegatedTokens.plus(delegatorIndexingRewards) graphNetwork.save() batchUpdateDelegatorsForIndexer(indexer.id, event.block.timestamp) @@ -119,7 +116,7 @@ export function handleRewardsAssigned(event: RewardsAssigned): void { // } export function handleRewardsDenyListUpdated(event: RewardsDenylistUpdated): void { - let subgraphDeployment = SubgraphDeployment.load(event.params.subgraphDeploymentID.toHexString())! + let subgraphDeployment = SubgraphDeployment.load(event.params.subgraphDeploymentID)! if (event.params.sinceBlock.toI32() == 0) { subgraphDeployment.deniedAt = 0 } else { diff --git a/src/mappings/serviceRegistry.ts b/src/mappings/serviceRegistry.ts index 3c49e92..4c1e0e2 100644 --- a/src/mappings/serviceRegistry.ts +++ b/src/mappings/serviceRegistry.ts @@ -8,7 +8,7 @@ import { createOrLoadIndexer, createOrLoadGraphAccount } from './helpers' * - updates indexer, creates if needed */ export function handleServiceRegistered(event: ServiceRegistered): void { - let id = event.params.indexer.toHexString() + let id = event.params.indexer // Creates Graph Account, if needed createOrLoadGraphAccount(id, event.block.timestamp) @@ -24,7 +24,7 @@ export function handleServiceRegistered(event: ServiceRegistered): void { * - updates indexer */ export function handleServiceUnregistered(event: ServiceUnregistered): void { - let id = event.params.indexer.toHexString() + let id = event.params.indexer let indexer = Indexer.load(id)! indexer.url = null indexer.geoHash = null diff --git a/src/mappings/staking.ts b/src/mappings/staking.ts index 3ac9cbb..46b2927 100644 --- a/src/mappings/staking.ts +++ b/src/mappings/staking.ts @@ -1,4 +1,4 @@ -import { BigInt, Address, BigDecimal, Bytes, ipfs, log } from '@graphprotocol/graph-ts' +import { BigInt, BigDecimal, Bytes } from '@graphprotocol/graph-ts' import { StakeDeposited, StakeWithdrawn, @@ -8,20 +8,15 @@ import { AllocationClosed, RebateClaimed, Staking, - SetOperator, StakeDelegated, StakeDelegatedLocked, StakeDelegatedWithdrawn, AllocationCollected, DelegationParametersUpdated, - SlasherUpdate, - AssetHolderUpdate, AllocationClosed1, RebateCollected, } from '../types/Staking/Staking' -import { - ParameterUpdated, StakingExtension, -} from '../types/StakingExtension/StakingExtension' +import { ParameterUpdated, StakingExtension } from '../types/StakingExtension/StakingExtension' import { Indexer, Allocation, @@ -30,17 +25,13 @@ import { SubgraphDeployment, Delegator, DelegatedStake, - DelegatedStakeDailyData, - IndexerDailyData, IndexerDelegatedStakeRelation, - GraphAccount, } from '../types/schema' import { createOrLoadSubgraphDeployment, createOrLoadIndexer, createOrLoadPool, - joinID, createOrLoadDelegator, createOrLoadDelegatedStake, updateAdvancedIndexerMetrics, @@ -52,11 +43,14 @@ import { batchUpdateDelegatorsForIndexer, getAndUpdateNetworkDailyData, calculateCapacities, + compoundId, + BIGINT_ONE, + BIGINT_ZERO, } from './helpers' import { avoidNegativeRoundingError } from './utils' export function handleDelegationParametersUpdated(event: DelegationParametersUpdated): void { - let id = event.params.indexer.toHexString() + let id = event.params.indexer let indexer = createOrLoadIndexer(id, event.block.timestamp) indexer.indexingRewardCut = event.params.indexingRewardCut.toI32() indexer.queryFeeCut = event.params.queryFeeCut.toI32() @@ -74,7 +68,7 @@ export function handleDelegationParametersUpdated(event: DelegationParametersUpd */ export function handleStakeDeposited(event: StakeDeposited): void { // update indexer - let id = event.params.indexer.toHexString() + let id = event.params.indexer let indexer = createOrLoadIndexer(id, event.block.timestamp) let previousStake = indexer.stakedTokens indexer.stakedTokens = indexer.stakedTokens.plus(event.params.tokens) @@ -85,7 +79,7 @@ export function handleStakeDeposited(event: StakeDeposited): void { // Update graph network let graphNetwork = createOrLoadGraphNetwork() graphNetwork.totalTokensStaked = graphNetwork.totalTokensStaked.plus(event.params.tokens) - if (previousStake == BigInt.fromI32(0)) { + if (previousStake == BIGINT_ZERO) { graphNetwork.stakedIndexersCount = graphNetwork.stakedIndexersCount + 1 } graphNetwork.save() @@ -103,7 +97,7 @@ export function handleStakeDeposited(event: StakeDeposited): void { */ export function handleStakeLocked(event: StakeLocked): void { // update indexer - let id = event.params.indexer.toHexString() + let id = event.params.indexer let indexer = Indexer.load(id)! let oldLockedTokens = indexer.lockedTokens indexer.lockedTokens = event.params.tokens @@ -116,9 +110,9 @@ export function handleStakeLocked(event: StakeLocked): void { // the tokens from the event replace the previously locked tokens // from this indexer let graphNetwork = createOrLoadGraphNetwork() - graphNetwork.totalUnstakedTokensLocked = graphNetwork.totalUnstakedTokensLocked.plus( - event.params.tokens, - ).minus(oldLockedTokens) + graphNetwork.totalUnstakedTokensLocked = graphNetwork.totalUnstakedTokensLocked + .plus(event.params.tokens) + .minus(oldLockedTokens) if (indexer.stakedTokens == indexer.lockedTokens) { graphNetwork.stakedIndexersCount = graphNetwork.stakedIndexersCount - 1 } @@ -136,7 +130,7 @@ export function handleStakeLocked(event: StakeLocked): void { */ export function handleStakeWithdrawn(event: StakeWithdrawn): void { // update indexer - let id = event.params.indexer.toHexString() + let id = event.params.indexer let indexer = Indexer.load(id)! indexer.stakedTokens = indexer.stakedTokens.minus(event.params.tokens) indexer.lockedTokens = indexer.lockedTokens.minus(event.params.tokens) @@ -163,7 +157,7 @@ export function handleStakeWithdrawn(event: StakeWithdrawn): void { * - update the Indexers stake */ export function handleStakeSlashed(event: StakeSlashed): void { - let id = event.params.indexer.toHexString() + let id = event.params.indexer let indexer = Indexer.load(id)! indexer.stakedTokens = indexer.stakedTokens.minus(event.params.tokens) @@ -190,15 +184,15 @@ export function handleStakeSlashed(event: StakeSlashed): void { } export function handleStakeDelegated(event: StakeDelegated): void { - let zeroShares = event.params.shares.equals(BigInt.fromI32(0)) + let zeroShares = event.params.shares.equals(BIGINT_ZERO) // update indexer - let indexerID = event.params.indexer.toHexString() + let indexerID = event.params.indexer let indexer = createOrLoadIndexer(indexerID, event.block.timestamp) indexer.delegatedTokens = indexer.delegatedTokens.plus(event.params.tokens) indexer.delegatorShares = indexer.delegatorShares.plus(event.params.shares) - if (indexer.delegatorShares != BigInt.fromI32(0)) { + if (indexer.delegatorShares != BIGINT_ZERO) { indexer = updateDelegationExchangeRate(indexer as Indexer) } indexer = updateAdvancedIndexerMetrics(indexer as Indexer) @@ -206,7 +200,7 @@ export function handleStakeDelegated(event: StakeDelegated): void { indexer.save() // update delegator - let delegatorID = event.params.delegator.toHexString() + let delegatorID = event.params.delegator let delegator = createOrLoadDelegator(delegatorID, event.block.timestamp) delegator.totalStakedTokens = delegator.totalStakedTokens.plus(event.params.tokens) delegator.stakedTokens = delegator.stakedTokens.plus(event.params.tokens) @@ -229,7 +223,7 @@ export function handleStakeDelegated(event: StakeDelegated): void { .times(previousShares.toBigDecimal()) .plus(event.params.tokens.toBigDecimal()) let averageCostBasisShares = previousShares.plus(event.params.shares) - if (averageCostBasisShares.gt(BigInt.fromI32(0))) { + if (averageCostBasisShares.gt(BIGINT_ZERO)) { delegatedStake.personalExchangeRate = averageCostBasisTokens .div(averageCostBasisShares.toBigDecimal()) .truncate(18) @@ -240,26 +234,30 @@ export function handleStakeDelegated(event: StakeDelegated): void { delegatedStake.totalStakedTokens = delegatedStake.totalStakedTokens.plus(event.params.tokens) delegatedStake.shareAmount = delegatedStake.shareAmount.plus(event.params.shares) delegatedStake.lastDelegatedAt = event.block.timestamp.toI32() - delegatedStake.originalDelegation = - delegatedStake.personalExchangeRate * delegatedStake.shareAmount.toBigDecimal() + delegatedStake.originalDelegation = delegatedStake.personalExchangeRate.times( + delegatedStake.shareAmount.toBigDecimal(), + ) delegatedStake.latestIndexerExchangeRate = indexer.delegationExchangeRate - delegatedStake.currentDelegation = - delegatedStake.latestIndexerExchangeRate * delegatedStake.shareAmount.toBigDecimal() + delegatedStake.currentDelegation = delegatedStake.latestIndexerExchangeRate.times( + delegatedStake.shareAmount.toBigDecimal(), + ) delegatedStake.unrealizedRewards = avoidNegativeRoundingError( - delegatedStake.currentDelegation - delegatedStake.originalDelegation, + delegatedStake.currentDelegation.minus(delegatedStake.originalDelegation), ) delegatedStake.save() delegator.lastDelegatedAt = event.block.timestamp.toI32() delegator.lastDelegation = delegatedStake.id delegator.originalDelegation = delegator.originalDelegation.plus( - delegatedStake.originalDelegation - oldOriginalDelegation, + delegatedStake.originalDelegation.minus(oldOriginalDelegation), ) delegator.currentDelegation = delegator.currentDelegation.plus( - delegatedStake.currentDelegation - oldCurrentDelegation, + delegatedStake.currentDelegation.minus(oldCurrentDelegation), ) delegator.totalUnrealizedRewards = avoidNegativeRoundingError( - delegator.totalUnrealizedRewards.plus(delegatedStake.unrealizedRewards - oldUnrealizedRewards), + delegator.totalUnrealizedRewards.plus( + delegatedStake.unrealizedRewards.minus(oldUnrealizedRewards), + ), ) if (isStakeBecomingActive) { @@ -271,9 +269,9 @@ export function handleStakeDelegated(event: StakeDelegated): void { // Re-activate relation with indexer before batch update, so new datapoints are created properly // We check for 0 shares, in case there's a minimal signalling that doesn't really mint Shares // We wouldn't want to re-activate the relation in that case - if (!delegatedStake.shareAmount.equals(BigInt.fromI32(0))) { + if (!delegatedStake.shareAmount.equals(BIGINT_ZERO)) { let relation = IndexerDelegatedStakeRelation.load(delegatedStake.relation)! - relation.active = true + relation.indexer = indexer.id relation.save() } @@ -295,14 +293,14 @@ export function handleStakeDelegated(event: StakeDelegated): void { export function handleStakeDelegatedLocked(event: StakeDelegatedLocked): void { // update indexer - let indexerID = event.params.indexer.toHexString() + let indexerID = event.params.indexer let indexer = Indexer.load(indexerID)! indexer.delegatedTokens = indexer.delegatedTokens.minus(event.params.tokens) indexer.delegatorShares = indexer.delegatorShares.minus(event.params.shares) let beforeUpdateDelegationExchangeRate = indexer.delegationExchangeRate - if (indexer.delegatorShares != BigInt.fromI32(0)) { + if (indexer.delegatorShares != BIGINT_ZERO) { indexer = updateDelegationExchangeRate(indexer as Indexer) } indexer = updateAdvancedIndexerMetrics(indexer as Indexer) @@ -310,8 +308,8 @@ export function handleStakeDelegatedLocked(event: StakeDelegatedLocked): void { indexer.save() // update delegated stake - let delegatorID = event.params.delegator.toHexString() - let id = joinID([delegatorID, indexerID]) + let delegatorID = event.params.delegator + let id = compoundId(delegatorID, indexerID) let delegatedStake = DelegatedStake.load(id)! let isStakeBecomingInactive = !delegatedStake.shareAmount.isZero() && delegatedStake.shareAmount == event.params.shares @@ -328,13 +326,15 @@ export function handleStakeDelegatedLocked(event: StakeDelegatedLocked): void { let oldOriginalDelegation = delegatedStake.originalDelegation delegatedStake.realizedRewards = delegatedStake.realizedRewards.plus(realizedRewards) - delegatedStake.originalDelegation = - delegatedStake.personalExchangeRate * delegatedStake.shareAmount.toBigDecimal() + delegatedStake.originalDelegation = delegatedStake.personalExchangeRate.times( + delegatedStake.shareAmount.toBigDecimal(), + ) delegatedStake.latestIndexerExchangeRate = indexer.delegationExchangeRate - delegatedStake.currentDelegation = - delegatedStake.latestIndexerExchangeRate * delegatedStake.shareAmount.toBigDecimal() + delegatedStake.currentDelegation = delegatedStake.latestIndexerExchangeRate.times( + delegatedStake.shareAmount.toBigDecimal(), + ) delegatedStake.unrealizedRewards = avoidNegativeRoundingError( - delegatedStake.currentDelegation - delegatedStake.originalDelegation, + delegatedStake.currentDelegation.minus(delegatedStake.originalDelegation), ) delegatedStake.save() @@ -346,7 +346,7 @@ export function handleStakeDelegatedLocked(event: StakeDelegatedLocked): void { delegator.totalUnrealizedRewards.minus(realizedRewards), ) delegator.originalDelegation = delegator.originalDelegation.plus( - delegatedStake.originalDelegation - oldOriginalDelegation, + delegatedStake.originalDelegation.minus(oldOriginalDelegation), ) delegator.currentDelegation = delegator.currentDelegation.minus(currentBalance) delegator.stakedTokens = delegator.stakedTokens.minus(event.params.tokens) @@ -365,9 +365,6 @@ export function handleStakeDelegatedLocked(event: StakeDelegatedLocked): void { graphNetwork.totalDelegatedTokens = graphNetwork.totalDelegatedTokens.minus(event.params.tokens) graphNetwork.save() - // batch update delegs - // batchUpdateDelegatorsForIndexer(indexer.id, event.block.timestamp) - // analytics let indexerDailyData = getAndUpdateIndexerDailyData(indexer as Indexer, event.block.timestamp) indexerDailyData.netDailyDelegatedTokens = indexerDailyData.netDailyDelegatedTokens.minus( @@ -376,32 +373,30 @@ export function handleStakeDelegatedLocked(event: StakeDelegatedLocked): void { indexerDailyData.save() // De-activate relation with indexer after batch update, so last datapoints are created properly - if (delegatedStake.shareAmount.equals(BigInt.fromI32(0))) { + if (delegatedStake.shareAmount.equals(BIGINT_ZERO)) { let relation = IndexerDelegatedStakeRelation.load(delegatedStake.relation)! - relation.active = false + relation.indexer = null relation.save() } getAndUpdateNetworkDailyData(graphNetwork as GraphNetwork, event.block.timestamp) } export function handleStakeDelegatedWithdrawn(event: StakeDelegatedWithdrawn): void { - let indexerID = event.params.indexer.toHexString() + let indexerID = event.params.indexer let indexer = Indexer.load(indexerID)! - let delegatorID = event.params.delegator.toHexString() + let delegatorID = event.params.delegator let delegator = Delegator.load(delegatorID)! - let id = joinID([delegatorID, indexerID]) + let id = compoundId(delegatorID, indexerID) let delegatedStake = DelegatedStake.load(id)! let lockedBefore = delegatedStake.lockedTokens delegator.lockedTokens = delegatedStake.lockedTokens.minus(lockedBefore) delegator.save() - delegatedStake.lockedTokens = BigInt.fromI32(0) + delegatedStake.lockedTokens = BIGINT_ZERO delegatedStake.lockedUntil = 0 delegatedStake.save() - // batchUpdateDelegatorsForIndexer(indexer.id, event.block.timestamp) - // analytics getAndUpdateIndexerDailyData(indexer as Indexer, event.block.timestamp) } @@ -415,15 +410,15 @@ export function handleStakeDelegatedWithdrawn(event: StakeDelegatedWithdrawn): v * - create a new channel */ export function handleAllocationCreated(event: AllocationCreated): void { - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() - let indexerID = event.params.indexer.toHexString() - let channelID = event.params.allocationID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID + let indexerID = event.params.indexer + let channelID = event.params.allocationID let allocationID = channelID // update indexer let indexer = Indexer.load(indexerID)! indexer.allocatedTokens = indexer.allocatedTokens.plus(event.params.tokens) - indexer.totalAllocationCount = indexer.totalAllocationCount.plus(BigInt.fromI32(1)) + indexer.totalAllocationCount = indexer.totalAllocationCount.plus(BIGINT_ONE) indexer.allocationCount = indexer.allocationCount + 1 indexer = updateAdvancedIndexerMetrics(indexer as Indexer) indexer = calculateCapacities(indexer as Indexer) @@ -446,18 +441,18 @@ export function handleAllocationCreated(event: AllocationCreated): void { allocation.activeForIndexer = indexerID allocation.subgraphDeployment = subgraphDeploymentID allocation.allocatedTokens = event.params.tokens - allocation.effectiveAllocation = BigInt.fromI32(0) + allocation.effectiveAllocation = BIGINT_ZERO allocation.createdAtEpoch = event.params.epoch.toI32() allocation.closedAtEpoch = 0 allocation.createdAtBlockHash = event.block.hash - allocation.queryFeesCollected = BigInt.fromI32(0) - allocation.queryFeeRebates = BigInt.fromI32(0) - allocation.distributedRebates = BigInt.fromI32(0) - allocation.curatorRewards = BigInt.fromI32(0) - allocation.indexingRewards = BigInt.fromI32(0) - allocation.indexingIndexerRewards = BigInt.fromI32(0) - allocation.indexingDelegatorRewards = BigInt.fromI32(0) - allocation.delegationFees = BigInt.fromI32(0) + allocation.queryFeesCollected = BIGINT_ZERO + allocation.queryFeeRebates = BIGINT_ZERO + allocation.distributedRebates = BIGINT_ZERO + allocation.curatorRewards = BIGINT_ZERO + allocation.indexingRewards = BIGINT_ZERO + allocation.indexingIndexerRewards = BIGINT_ZERO + allocation.indexingDelegatorRewards = BIGINT_ZERO + allocation.delegationFees = BIGINT_ZERO allocation.status = 'Active' allocation.totalReturn = BigDecimal.fromString('0') allocation.annualizedReturn = BigDecimal.fromString('0') @@ -467,7 +462,7 @@ export function handleAllocationCreated(event: AllocationCreated): void { getAndUpdateNetworkDailyData(graphNetwork as GraphNetwork, event.block.timestamp) } -/** +/** * @dev handleAllocationCollected * Note: this handler is for the AllocationCollected event prior to exponential rebates upgrade * - Transfers tokens from a state channel to the staking contract @@ -478,11 +473,11 @@ export function handleAllocationCreated(event: AllocationCreated): void { * - if closed, it will add fees to the rebate pool * - Note - the name event.param.rebateFees is confusing. Rebate fees are better described * as query Fees. rebate is from cobbs douglas, which we get from claim() -*/ + */ export function handleAllocationCollected(event: AllocationCollected): void { - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() - let indexerID = event.params.indexer.toHexString() - let allocationID = event.params.allocationID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID + let indexerID = event.params.indexer + let allocationID = event.params.allocationID // update indexer let indexer = Indexer.load(indexerID)! @@ -552,8 +547,8 @@ export function handleAllocationCollected(event: AllocationCollected): void { * - update and close the channel */ export function handleAllocationClosed(event: AllocationClosed): void { - let indexerID = event.params.indexer.toHexString() - let allocationID = event.params.allocationID.toHexString() + let indexerID = event.params.indexer + let allocationID = event.params.allocationID // update indexer let indexer = Indexer.load(indexerID)! @@ -568,7 +563,7 @@ export function handleAllocationClosed(event: AllocationClosed): void { // update allocation let allocation = Allocation.load(allocationID)! - allocation.poolClosedIn = event.params.epoch.toString() + allocation.poolClosedIn = changetype(Bytes.fromBigInt(event.params.epoch)) allocation.activeForIndexer = null allocation.closedAtEpoch = event.params.epoch.toI32() allocation.closedAtBlockHash = event.block.hash @@ -579,7 +574,7 @@ export function handleAllocationClosed(event: AllocationClosed): void { // update subgraph deployment. Pretty sure this should be done here, if not // it would be done in handleRebateClaimed - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID let deployment = createOrLoadSubgraphDeployment(subgraphDeploymentID, event.block.timestamp) deployment.stakedTokens = deployment.stakedTokens.minus(event.params.tokens) deployment.save() @@ -603,8 +598,8 @@ export function handleAllocationClosed(event: AllocationClosed): void { * - update and close the channel */ export function handleAllocationClosedCobbDouglas(event: AllocationClosed1): void { - let indexerID = event.params.indexer.toHexString() - let allocationID = event.params.allocationID.toHexString() + let indexerID = event.params.indexer + let allocationID = event.params.allocationID // update indexer let indexer = Indexer.load(indexerID)! @@ -619,7 +614,7 @@ export function handleAllocationClosedCobbDouglas(event: AllocationClosed1): voi // update allocation let allocation = Allocation.load(allocationID)! - allocation.poolClosedIn = event.params.epoch.toString() + allocation.poolClosedIn = changetype(Bytes.fromBigInt(event.params.epoch)) allocation.activeForIndexer = null allocation.closedAtEpoch = event.params.epoch.toI32() allocation.closedAtBlockHash = event.block.hash @@ -643,7 +638,7 @@ export function handleAllocationClosedCobbDouglas(event: AllocationClosed1): voi // update subgraph deployment. Pretty sure this should be done here, if not // it would be done in handleRebateClaimed - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID let deployment = createOrLoadSubgraphDeployment(subgraphDeploymentID, event.block.timestamp) deployment.stakedTokens = deployment.stakedTokens.minus(event.params.tokens) deployment.save() @@ -667,9 +662,9 @@ export function handleAllocationClosedCobbDouglas(event: AllocationClosed1): voi * the other case, if it is restaked, it will be handled by handleStakeDeposited */ export function handleRebateClaimed(event: RebateClaimed): void { - let indexerID = event.params.indexer.toHexString() - let allocationID = event.params.allocationID.toHexString() - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() + let indexerID = event.params.indexer + let allocationID = event.params.allocationID + let subgraphDeploymentID = event.params.subgraphDeploymentID // update indexer let indexer = Indexer.load(indexerID)! @@ -677,7 +672,7 @@ export function handleRebateClaimed(event: RebateClaimed): void { indexer.delegatorQueryFees = indexer.delegatorQueryFees.plus(event.params.delegationFees) indexer.delegatedTokens = indexer.delegatedTokens.plus(event.params.delegationFees) - if (indexer.delegatorShares != BigInt.fromI32(0)) { + if (indexer.delegatorShares != BIGINT_ZERO) { indexer = updateDelegationExchangeRate(indexer as Indexer) } indexer = updateAdvancedIndexerMetrics(indexer as Indexer) @@ -690,7 +685,7 @@ export function handleRebateClaimed(event: RebateClaimed): void { allocation.save() // update pool - let pool = Pool.load(event.params.forEpoch.toString())! + let pool = Pool.load(changetype(Bytes.fromBigInt(event.params.forEpoch)))! pool.claimedFees = pool.claimedFees.plus(event.params.tokens) pool.save() @@ -713,7 +708,9 @@ export function handleRebateClaimed(event: RebateClaimed): void { graphNetwork.totalUnclaimedQueryFeeRebates = graphNetwork.totalUnclaimedQueryFeeRebates.minus( event.params.delegationFees.plus(event.params.tokens), ) - graphNetwork.totalDelegatedTokens = graphNetwork.totalDelegatedTokens.plus(event.params.delegationFees) + graphNetwork.totalDelegatedTokens = graphNetwork.totalDelegatedTokens.plus( + event.params.delegationFees, + ) graphNetwork.save() batchUpdateDelegatorsForIndexer(indexer.id, event.block.timestamp) @@ -743,19 +740,19 @@ export function handleParameterUpdated(event: ParameterUpdated): void { getAndUpdateNetworkDailyData(graphNetwork as GraphNetwork, event.block.timestamp) } -/** +/** * @dev handleRebateCollected * - update indexer * - update allocation * - update epoch * - update subgraph deployment * - update graph network -*/ + */ export function handleRebateCollected(event: RebateCollected): void { let graphNetwork = createOrLoadGraphNetwork() - let subgraphDeploymentID = event.params.subgraphDeploymentID.toHexString() - let indexerID = event.params.indexer.toHexString() - let allocationID = event.params.allocationID.toHexString() + let subgraphDeploymentID = event.params.subgraphDeploymentID + let indexerID = event.params.indexer + let allocationID = event.params.allocationID // update indexer let indexer = Indexer.load(indexerID)! @@ -763,7 +760,7 @@ export function handleRebateCollected(event: RebateCollected): void { indexer.queryFeeRebates = indexer.queryFeeRebates.plus(event.params.queryRebates) indexer.delegatorQueryFees = indexer.delegatorQueryFees.plus(event.params.delegationRewards) indexer.delegatedTokens = indexer.delegatedTokens.plus(event.params.delegationRewards) - if (indexer.delegatorShares != BigInt.fromI32(0)) { + if (indexer.delegatorShares != BIGINT_ZERO) { indexer = updateDelegationExchangeRate(indexer as Indexer) } indexer = updateAdvancedIndexerMetrics(indexer as Indexer) @@ -777,20 +774,8 @@ export function handleRebateCollected(event: RebateCollected): void { allocation.queryFeeRebates = event.params.queryRebates allocation.distributedRebates = allocation.distributedRebates.plus(event.params.queryRebates) allocation.delegationFees = event.params.delegationRewards - allocation.status = 'Closed' allocation.save() - // // Update epoch - // let epoch = createOrLoadEpoch( - // addresses.isL1 ? event.block.number : graphNetwork.currentL1BlockNumber!, - // ) - // epoch.totalQueryFees = epoch.totalQueryFees.plus(event.params.tokens) - // epoch.taxedQueryFees = epoch.taxedQueryFees.plus(event.params.protocolTax) - // epoch.queryFeesCollected = epoch.queryFeesCollected.plus(event.params.queryFees) - // epoch.curatorQueryFees = epoch.curatorQueryFees.plus(event.params.curationFees) - // epoch.queryFeeRebates = epoch.queryFeeRebates.plus(event.params.queryRebates) - // epoch.save() - // update subgraph deployment let deployment = SubgraphDeployment.load(subgraphDeploymentID)! deployment.queryFeesAmount = deployment.queryFeesAmount.plus(event.params.queryFees) @@ -821,107 +806,14 @@ export function handleRebateCollected(event: RebateCollected): void { graphNetwork.totalUnclaimedQueryFeeRebates = graphNetwork.totalUnclaimedQueryFeeRebates.minus( event.params.delegationRewards.plus(event.params.queryRebates), ) - graphNetwork.totalDelegatedTokens = graphNetwork.totalDelegatedTokens.plus(event.params.delegationRewards) + graphNetwork.totalDelegatedTokens = graphNetwork.totalDelegatedTokens.plus( + event.params.delegationRewards, + ) graphNetwork.save() batchUpdateDelegatorsForIndexer(indexer.id, event.block.timestamp) getAndUpdateIndexerDailyData(indexer as Indexer, event.block.timestamp) - getAndUpdateSubgraphDeploymentDailyData( - deployment as SubgraphDeployment, - event.block.timestamp, - ) + getAndUpdateSubgraphDeploymentDailyData(deployment as SubgraphDeployment, event.block.timestamp) getAndUpdateNetworkDailyData(graphNetwork as GraphNetwork, event.block.timestamp) } - -// -// export function handleSetOperator(event: SetOperator): void { -// let graphAccount = createOrLoadGraphAccount( -// event.params.indexer.toHexString(), -// event.params.indexer, -// event.block.timestamp, -// ) -// let operators = graphAccount.operators -// let index = operators.indexOf(event.params.operator.toHexString()) -// if (index != -1) { -// // false - it existed, and we set it to false, so remove from operators -// if (!event.params.allowed) { -// operators.splice(index, 1) -// } -// } else { -// // true - it did not exist before, and we say add, so add -// if (event.params.allowed) { -// operators.push(event.params.operator.toHexString()) -// // Create the operator as a graph account -// createOrLoadGraphAccount( -// event.params.operator.toHexString(), -// event.params.operator, -// event.block.timestamp, -// ) -// } -// } -// graphAccount.operators = operators -// graphAccount.save() -// } - -// export function handleSlasherUpdate(event: SlasherUpdate): void { -// let graphNetwork = createOrLoadGraphNetwork() -// let slashers = graphNetwork.slashers -// if (slashers == null) { -// slashers = [] -// } -// let index = slashers.indexOf(event.params.slasher) -// -// // It was not there before -// if (index == -1) { -// // Lets add it in -// if (event.params.allowed) { -// slashers.push(event.params.slasher) -// } -// // If false was passed, we do nothing -// // It was there before -// } else { -// // We are revoking access -// if (!event.params.allowed) { -// slashers.splice(index, 1) -// } -// // Otherwise do nothing -// } -// graphNetwork.slashers = slashers -// graphNetwork.save() -// } - -// export function handleAssetHolderUpdate(event: AssetHolderUpdate): void { -// let graphNetwork = createOrLoadGraphNetwork() -// let assetHolders = graphNetwork.assetHolders -// if (assetHolders == null) { -// assetHolders = [] -// } -// let index = assetHolders.indexOf(event.params.assetHolder) -// -// // It was not there before -// if (index == -1) { -// // Lets add it in -// if (event.params.allowed) { -// assetHolders.push(event.params.assetHolder) -// } -// // If false was passed, we do nothing -// // It was there before -// } else { -// // We are revoking access -// if (!event.params.allowed) { -// assetHolders.splice(index, 1) -// } -// // Otherwise do nothing -// } -// graphNetwork.assetHolders = assetHolders -// graphNetwork.save() -// } - -// export function handleImplementationUpdated(event: ImplementationUpdated): void { -// let graphNetwork = createOrLoadGraphNetwork() -// let implementations = graphNetwork.stakingImplementations -// implementations.push(event.params.newImplementation) -// graphNetwork.stakingImplementations = implementations -// graphNetwork.save() -// } diff --git a/subgraph.template.yaml b/subgraph.template.yaml index 5e86b74..fb0ea29 100644 --- a/subgraph.template.yaml +++ b/subgraph.template.yaml @@ -1,4 +1,4 @@ -specVersion: 1.0.0 +specVersion: 1.1.0 description: Graph Network analytics subgraph ({{network}}) repository: https://github.com/graphprotocol/graph-network-analytics-subgraph features: @@ -13,34 +13,6 @@ indexerHints: schema: file: ./schema.graphql dataSources: - # - kind: ethereum/contract - # name: Controller - # network: {{network}} - # source: - # address: '{{controller}}' - # abi: Controller - # startBlock: {{blockNumber}} - # mapping: - # kind: ethereum/events - # apiVersion: 0.0.7 - # language: wasm/assemblyscript - # file: ./src/mappings/controller.ts - # entities: - # - Indexer - # abis: - # - name: Controller - # file: ./node_modules/@graphprotocol/contracts/dist/abis/Controller.json - # eventHandlers: - # - event: SetContractProxy(indexed bytes32,address) - # handler: handleSetContractProxy - # - event: NewOwnership(indexed address,indexed address) - # handler: handleNewOwnership - # - event: PartialPauseChanged(bool) - # handler: handlePartialPauseChanged - # - event: PauseChanged(bool) - # handler: handlePauseChanged - # - event: NewPauseGuardian(indexed address,indexed address) - # handler: handleNewPauseGuardian - kind: ethereum/contract name: GNS network: {{network}} diff --git a/tests/.bin/alias.wasm b/tests/.bin/alias.wasm new file mode 100644 index 0000000..96976c6 Binary files /dev/null and b/tests/.bin/alias.wasm differ diff --git a/tests/.bin/bytesidgeneration.wasm b/tests/.bin/bytesidgeneration.wasm new file mode 100644 index 0000000..8a58083 Binary files /dev/null and b/tests/.bin/bytesidgeneration.wasm differ diff --git a/tests/bytesIDGeneration.test.ts b/tests/bytesIDGeneration.test.ts new file mode 100644 index 0000000..23a95e0 --- /dev/null +++ b/tests/bytesIDGeneration.test.ts @@ -0,0 +1,90 @@ +import { test, assert } from 'matchstick-as/assembly/index' +import { BigInt, Bytes, log } from '@graphprotocol/graph-ts' +import { joinID, joinIDString, compoundId, createOrLoadDelegator } from '../src/mappings/helpers' +import { Delegator } from '../src/types/schema' +test('Bytes id generation', () => { + let bytesFromBigIntFromI32 = changetype(Bytes.fromBigInt(BigInt.fromI32(1))) + let delegatorID = changetype( + Bytes.fromHexString('0x1ffd6f7fcd56e9c4966bdb68aa4a19c13d401371'), + ) + let bytesFromI32 = changetype(Bytes.fromI32(1)) + let compound1 = compoundId(delegatorID, bytesFromBigIntFromI32) + let joint1 = joinID([delegatorID, bytesFromBigIntFromI32]) + let compComp1 = compoundId( + compoundId(delegatorID, bytesFromBigIntFromI32), + bytesFromBigIntFromI32, + ) + let jointJoint1 = joinID([delegatorID, bytesFromBigIntFromI32, bytesFromBigIntFromI32]) + let compound2 = compoundId(delegatorID, bytesFromI32) + let joint2 = joinID([delegatorID, bytesFromI32]) + let compComp2 = compoundId(compoundId(delegatorID, bytesFromI32), bytesFromI32) + let jointJoint2 = joinID([delegatorID, bytesFromI32, bytesFromI32]) + let delegator = createOrLoadDelegator(delegatorID, BigInt.fromI32(1)) + delegator.lockedTokens = BigInt.fromI32(100000) + delegator.save() + + let delegReload = Delegator.load(delegator.id)! + + let delegBytesFromI32 = changetype(Bytes.fromI32(100000)) + let delegBytesFromString = changetype(Bytes.fromBigInt(BigInt.fromString('100000'))) + let delegBytesFromEntity = changetype(Bytes.fromBigInt(delegator.lockedTokens)) + let delegBytesFromEntityReload = changetype(Bytes.fromBigInt(delegReload.lockedTokens)) + + assert.bytesEquals( + delegBytesFromEntity, + delegBytesFromI32, + 'Bytes from entity and I32 differ. Entity: ' + + delegBytesFromEntity.toHex() + + ', I32: ' + + delegBytesFromI32.toHex(), + ) + assert.assertTrue(delegBytesFromEntityReload !== delegBytesFromI32) + assert.bytesEquals( + delegBytesFromEntityReload, + delegBytesFromString, + 'Bytes from entity reload and String differ. Entity Reload: ' + + delegBytesFromEntityReload.toHex() + + ', String: ' + + delegBytesFromString.toHex(), + ) + assert.bytesEquals( + compound1, + joint1, + 'Simple Compound and Join ID differ. Compound: ' + + compound1.toHex() + + ', join: ' + + joint1.toHex(), + ) + assert.bytesEquals( + compComp1, + jointJoint1, + 'Double Compound and Join ID differ. Compound: ' + + compComp1.toHex() + + ', join: ' + + jointJoint1.toHex(), + ) + assert.bytesEquals( + compound2, + joint2, + 'Simple Compound and Join ID differ. Compound: ' + + compound1.toHex() + + ', join: ' + + joint1.toHex(), + ) + assert.bytesEquals( + compComp2, + jointJoint2, + 'Double Compound and Join ID differ. Compound: ' + + compComp1.toHex() + + ', join: ' + + jointJoint1.toHex(), + ) + assert.bytesEquals( + bytesFromBigIntFromI32, + bytesFromI32, + 'Bytes from I32 and Bytes from BigInt from I32 differ. BigInt: ' + + bytesFromBigIntFromI32.toHex() + + ', I32: ' + + bytesFromI32.toHex(), + ) +}) diff --git a/yarn.lock b/yarn.lock index dbf0a8e..17a4a67 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,27 @@ # yarn lockfile v1 +"@0no-co/graphql.web@^1.0.5": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz#c7a762c887b3482a79ffa68f63de5e96059a62e4" + integrity sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ== + "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== +"@arbitrum/sdk@^3.1.12": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@arbitrum/sdk/-/sdk-3.4.0.tgz#78b69aa5c10e7b42e63298e9767145d0fed726b6" + integrity sha512-bFPaVOgT/T4OIfmjKFF3I2qi1tTPdW4afy1fv4+kewZi9z/j2CSY71F49xol/ZNU3giU41/mgUQOkzBLAPo+xQ== + dependencies: + "@ethersproject/address" "^5.0.8" + "@ethersproject/bignumber" "^5.1.1" + "@ethersproject/bytes" "^5.0.8" + async-mutex "^0.4.0" + ethers "^5.1.0" + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -36,6 +52,42 @@ chalk "^2.4.2" js-tokens "^4.0.0" +"@chainsafe/as-sha256@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" + integrity sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg== + +"@chainsafe/persistent-merkle-tree@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz#4c9ee80cc57cd3be7208d98c40014ad38f36f7ff" + integrity sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + +"@chainsafe/persistent-merkle-tree@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz#2b4a62c9489a5739dedd197250d8d2f5427e9f63" + integrity sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + +"@chainsafe/ssz@^0.10.0": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.10.2.tgz#c782929e1bb25fec66ba72e75934b31fd087579e" + integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + "@chainsafe/persistent-merkle-tree" "^0.5.0" + +"@chainsafe/ssz@^0.9.2": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.9.4.tgz#696a8db46d6975b600f8309ad3a12f7c0e310497" + integrity sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + "@chainsafe/persistent-merkle-tree" "^0.4.2" + case "^1.6.3" + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -73,7 +125,7 @@ "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -112,7 +164,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.8", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -138,7 +190,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.1.1", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -147,7 +199,7 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.8", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== @@ -177,6 +229,15 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" +"@ethersproject/experimental@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/experimental/-/experimental-5.7.0.tgz#9759639434d37beaedfd8acab6f3af7db246b92d" + integrity sha512-DWvhuw7Dg8JPyhMbh/CNYOwsTLjXRx/HGkacIL5rBocG8jJC0kmixwoK/J3YblO4vtcyBLMa+sV74RJZK2iyHg== + dependencies: + "@ethersproject/web" "^5.7.0" + ethers "^5.7.0" + scrypt-js "3.0.1" + "@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" @@ -242,6 +303,13 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== +"@ethersproject/networks@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.0.tgz#df72a392f1a63a57f87210515695a31a245845ad" + integrity sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" @@ -264,7 +332,33 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.7.2": +"@ethersproject/providers@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.0.tgz#a885cfc7650a64385e7b03ac86fe9c2d4a9c2c63" + integrity sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -393,6 +487,17 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" +"@ethersproject/web@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.0.tgz#40850c05260edad8b54827923bbad23d96aac0bc" + integrity sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" @@ -415,6 +520,11 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" +"@fastify/busboy@^2.0.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" + integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== + "@float-capital/float-subgraph-uncrashable@^0.0.0-alpha.4": version "0.0.0-internal-testing.5" resolved "https://registry.yarnpkg.com/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.5.tgz#060f98440f6e410812766c5b040952d2d02e2b73" @@ -425,6 +535,33 @@ graphql-import-node "^0.0.5" js-yaml "^4.1.0" +"@graphprotocol/common-ts@^2.0.7": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@graphprotocol/common-ts/-/common-ts-2.0.9.tgz#c92ba7bb7bd5eb662c424b14a67a674228e2c37d" + integrity sha512-ZPONJg1+uMe6kAIILjl/YjKvK8nTcuz4GqL5yLZjPh/0w5fsGs5KCH6yKMLVAf4ZH6YNY0l9xJlRd1Nkb8JH+w== + dependencies: + "@graphprotocol/contracts" "5.3.3" + "@graphprotocol/pino-sentry-simple" "0.7.1" + "@urql/core" "2.4.4" + "@urql/exchange-execute" "1.2.2" + body-parser "1.20.2" + bs58 "5.0.0" + cors "2.8.5" + cross-fetch "4.0.0" + ethers "5.7.0" + express "4.18.2" + graphql "16.8.0" + graphql-tag "2.12.6" + helmet "7.0.0" + morgan "1.10.0" + ngeohash "0.6.3" + pg "8.11.3" + pg-hstore "2.3.4" + pino "7.6.0" + pino-multi-stream "6.0.0" + prom-client "14.2.0" + sequelize "6.33.0" + "@graphprotocol/contracts@5.3.3": version "5.3.3" resolved "https://registry.yarnpkg.com/@graphprotocol/contracts/-/contracts-5.3.3.tgz#89c383ce244d9ed6cf1146baafde379cbbdfdfe6" @@ -433,13 +570,31 @@ console-table-printer "^2.11.1" ethers "^5.6.0" -"@graphprotocol/graph-cli@^0.51.0": - version "0.51.2" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.51.2.tgz#ad333a5110b4835e648c3205b46a2582653d1966" - integrity sha512-C+h6HLeYhsNFpV3TmVz1j6MMYA0K81+iInysFdnqX2J1ZwH7ldiHZyJuNq4ajxZlXhBL7+UV9zx7id6OSaj6GA== +"@graphprotocol/contracts@6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/contracts/-/contracts-6.2.0.tgz#45247e8662f7f53918de42523adcaadd180b2e09" + integrity sha512-Fo6hNQ+7wDwpYFXHrYQOJATHvIesXLDTGwiu2Bz6YbahwYxRlkp+79HEafhnNGDVOfITU2xKWWP1TdvrrsaJbw== + dependencies: + "@graphprotocol/sdk" "^0.5.0" + console-table-printer "^2.11.1" + +"@graphprotocol/contracts@^6.2.0": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@graphprotocol/contracts/-/contracts-6.2.1.tgz#d5dedbd4654272d6f2223a9be81f5f45ccb98833" + integrity sha512-lYZi6TFjViOWr4d3KPOvSQQBGGjdv1rrNIFRgbX/PCZb3fwH2qOIm/f7DHya2ApORuBrAmJsG1yEUS0+Cnxoqw== + dependencies: + "@graphprotocol/sdk" "^0.5.0" + console-table-printer "^2.11.1" + +"@graphprotocol/graph-cli@0.69.1": + version "0.69.1" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.69.1.tgz#2ea248fb1636b46afb6101236e3f387e9d2f3275" + integrity sha512-PekTli4hsBkF48y2NA2ufNjtdG/VL4N+E7GAavNXxFmSHM9VoCWbR4OBeJ93dAOpgHRGyx8yO1NE9DDT7yEZsg== dependencies: "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" "@oclif/core" "2.8.6" + "@oclif/plugin-autocomplete" "^2.3.6" + "@oclif/plugin-not-found" "^2.4.0" "@whatwg-node/fetch" "^0.8.4" assemblyscript "0.19.23" binary-install-raw "0.0.13" @@ -450,14 +605,13 @@ dockerode "2.5.8" fs-extra "9.1.0" glob "9.3.5" - gluegun "5.1.2" + gluegun "5.1.6" graphql "15.5.0" immutable "4.2.1" ipfs-http-client "55.0.0" jayson "4.0.0" js-yaml "3.14.1" - prettier "1.19.1" - request "2.88.2" + prettier "3.0.3" semver "7.4.0" sync-request "6.1.0" tmp-promise "3.0.3" @@ -465,13 +619,47 @@ which "2.0.2" yaml "1.10.2" -"@graphprotocol/graph-ts@^0.31.0": - version "0.31.0" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.31.0.tgz#730668c0369828b31bef81e8d9bc66b9b48e3480" - integrity sha512-xreRVM6ho2BtolyOh2flDkNoGZximybnzUnF53zJVp0+Ed0KnAlO1/KOCUYw06euVI9tk0c9nA2Z/D5SIQV2Rg== +"@graphprotocol/graph-ts@0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.34.0.tgz#ca47398295b114f25b412faa364b98af31fa2bb7" + integrity sha512-gnhjai65AV4YMYe9QHGz+HP/jdzI54z/nOfEXZFfh6m987EP2iy3ycLXrTi+ahcogHH7vtoWFdXbUzZbE8bCAg== dependencies: assemblyscript "0.19.10" +"@graphprotocol/pino-sentry-simple@0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@graphprotocol/pino-sentry-simple/-/pino-sentry-simple-0.7.1.tgz#ac08b978bfa33178b9e809f53ae0983ff5f724d8" + integrity sha512-iccKFdFBjarSp8/liXuK1EtGq8Vwn118tqymbOJBxblecRsi4rOebk63qnL+dK/a0IvxH6h2+RjjWDbRt7UsUA== + dependencies: + "@sentry/node" "^5.21.1" + pumpify "^2.0.1" + split2 "^3.1.1" + through2 "^3.0.1" + +"@graphprotocol/sdk@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/sdk/-/sdk-0.5.0.tgz#fd9fd546f859f2796daa374b9e618f3d9b7cdd8e" + integrity sha512-kW8NIgBYmcryiYUCU5qfOgGfY1ZnDoKml0xWzYqbY9C898VPMPq6KWtgPglqqgl3LPQcck/osnEYp0B48f2AVA== + dependencies: + "@arbitrum/sdk" "^3.1.12" + "@ethersproject/experimental" "^5.7.0" + "@graphprotocol/common-ts" "^2.0.7" + "@graphprotocol/contracts" "^6.2.0" + "@nomicfoundation/hardhat-network-helpers" "^1.0.9" + "@nomiclabs/hardhat-ethers" "^2.2.3" + debug "^4.3.4" + ethers "^5.7.0" + hardhat "~2.14.0" + hardhat-secure-accounts "^0.0.6" + inquirer "^8.0.0" + lodash "^4.17.21" + yaml "^1.10.2" + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -527,6 +715,27 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@metamask/eth-sig-util@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== + dependencies: + ethereumjs-abi "^0.6.8" + ethereumjs-util "^6.2.1" + ethjs-util "^0.1.6" + tweetnacl "^1.0.3" + tweetnacl-util "^0.15.1" + +"@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== + +"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -548,6 +757,218 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nomicfoundation/ethereumjs-block@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz#6f89664f55febbd723195b6d0974773d29ee133d" + integrity sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + ethereum-cryptography "0.1.3" + ethers "^5.7.1" + +"@nomicfoundation/ethereumjs-blockchain@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz#80e0bd3535bfeb9baa29836b6f25123dab06a726" + integrity sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-ethash" "3.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + abstract-level "^1.0.3" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + level "^8.0.0" + lru-cache "^5.1.1" + memory-level "^1.0.0" + +"@nomicfoundation/ethereumjs-common@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz#4702d82df35b07b5407583b54a45bf728e46a2f0" + integrity sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g== + dependencies: + "@nomicfoundation/ethereumjs-util" "9.0.1" + crc-32 "^1.2.0" + +"@nomicfoundation/ethereumjs-ethash@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz#65ca494d53e71e8415c9a49ef48bc921c538fc41" + integrity sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + abstract-level "^1.0.3" + bigint-crypto-utils "^3.0.23" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-evm@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz#f35681e203363f69ce2b3d3bf9f44d4e883ca1f1" + integrity sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ== + dependencies: + "@ethersproject/providers" "^5.7.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/ethereumjs-rlp@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz#0b30c1cf77d125d390408e391c4bb5291ef43c28" + integrity sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ== + +"@nomicfoundation/ethereumjs-statemanager@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz#8824a97938db4471911e2d2f140f79195def5935" + integrity sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + ethers "^5.7.1" + js-sdsl "^4.1.4" + +"@nomicfoundation/ethereumjs-trie@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz#662c55f6b50659fd4b22ea9f806a7401cafb7717" + integrity sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + "@types/readable-stream" "^2.3.13" + ethereum-cryptography "0.1.3" + readable-stream "^3.6.0" + +"@nomicfoundation/ethereumjs-tx@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz#7629dc2036b4a33c34e9f0a592b43227ef4f0c7d" + integrity sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w== + dependencies: + "@chainsafe/ssz" "^0.9.2" + "@ethersproject/providers" "^5.7.2" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-util@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz#530cda8bae33f8b5020a8f199ed1d0a2ce48ec89" + integrity sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA== + dependencies: + "@chainsafe/ssz" "^0.10.0" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-vm@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz#7d035e0993bcad10716c8b36e61dfb87fa3ca05f" + integrity sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-blockchain" "7.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-evm" "2.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-statemanager" "2.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + mcl-wasm "^0.7.1" + rustbn.js "~0.2.0" + +"@nomicfoundation/hardhat-network-helpers@^1.0.9": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz#c61042ceb104fdd6c10017859fdef6529c1d6585" + integrity sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ== + dependencies: + ethereumjs-util "^7.1.4" + +"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" + integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== + +"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" + integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== + +"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" + integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== + +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" + integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== + +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" + integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== + +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz#8d328d16839e52571f72f2998c81e46bf320f893" + integrity sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA== + +"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz#9b49d0634b5976bb5ed1604a1e1b736f390959bb" + integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== + +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" + integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== + +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" + integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== + +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" + integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== + +"@nomicfoundation/solidity-analyzer@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" + integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== + optionalDependencies: + "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" + "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.1" + "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.1" + "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" + "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" + +"@nomiclabs/hardhat-ethers@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" + integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== + "@oclif/core@2.8.6": version "2.8.6" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.8.6.tgz#7eb6984108f471ad0d719d3c07cde14c47ab17c5" @@ -583,6 +1004,58 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" +"@oclif/core@^2.15.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.16.0.tgz#e6f3c6c359d4313a15403d8652bbdd0e99ce4b3a" + integrity sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw== + dependencies: + "@types/cli-progress" "^3.11.0" + ansi-escapes "^4.3.2" + ansi-styles "^4.3.0" + cardinal "^2.1.1" + chalk "^4.1.2" + clean-stack "^3.0.1" + cli-progress "^3.12.0" + debug "^4.3.4" + ejs "^3.1.8" + get-package-type "^0.1.0" + globby "^11.1.0" + hyperlinker "^1.0.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.14.1" + natural-orderby "^2.0.3" + object-treeify "^1.1.33" + password-prompt "^1.1.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + ts-node "^10.9.1" + tslib "^2.5.0" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + +"@oclif/plugin-autocomplete@^2.3.6": + version "2.3.10" + resolved "https://registry.yarnpkg.com/@oclif/plugin-autocomplete/-/plugin-autocomplete-2.3.10.tgz#787f6208cdfe10ffc68ad89e9e7f1a7ad0e8987f" + integrity sha512-Ow1AR8WtjzlyCtiWWPgzMyT8SbcDJFr47009riLioHa+MHX2BCDtVn2DVnN/E6b9JlPV5ptQpjefoRSNWBesmg== + dependencies: + "@oclif/core" "^2.15.0" + chalk "^4.1.0" + debug "^4.3.4" + +"@oclif/plugin-not-found@^2.4.0": + version "2.4.3" + resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-2.4.3.tgz#3d24095adb0f3876cb4bcfdfdcb775086cf6d4b5" + integrity sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg== + dependencies: + "@oclif/core" "^2.15.0" + chalk "^4" + fast-levenshtein "^3.0.0" + "@peculiar/asn1-schema@^2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" @@ -668,6 +1141,96 @@ resolved "https://registry.yarnpkg.com/@rescript/std/-/std-9.0.0.tgz#df53f3fa5911cb4e85bd66b92e9e58ddf3e4a7e1" integrity sha512-zGzFsgtZ44mgL4Xef2gOy1hrRVdrs9mcxCOOKZrIPsmbZW14yTkaF591GXxpQvjXiHtgZ/iA9qLyWH6oSReIxQ== +"@scure/base@~1.1.0": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.6.tgz#8ce5d304b436e4c84f896e0550c83e4d88cb917d" + integrity sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== + +"@scure/bip32@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" + integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== + dependencies: + "@noble/hashes" "~1.2.0" + "@noble/secp256k1" "~1.7.0" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" + integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== + dependencies: + "@noble/hashes" "~1.2.0" + "@scure/base" "~1.1.0" + +"@sentry/core@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" + integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/hub@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" + integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== + dependencies: + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/minimal@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" + integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/types" "5.30.0" + tslib "^1.9.3" + +"@sentry/node@^5.18.1", "@sentry/node@^5.21.1": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" + integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== + dependencies: + "@sentry/core" "5.30.0" + "@sentry/hub" "5.30.0" + "@sentry/tracing" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^1.9.3" + +"@sentry/tracing@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" + integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== + dependencies: + "@sentry/hub" "5.30.0" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/types@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" + integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== + +"@sentry/utils@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" + integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== + dependencies: + "@sentry/types" "5.30.0" + tslib "^1.9.3" + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -688,6 +1251,13 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== +"@types/bn.js@^4.11.3": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + "@types/bn.js@^5.1.0": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.2.tgz#162f5238c46f4bcbac07a98561724eca1fcf0c5e" @@ -716,6 +1286,13 @@ dependencies: "@types/node" "*" +"@types/debug@^4.1.8": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" @@ -738,11 +1315,21 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/lru-cache@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== + "@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/ms@*": + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + "@types/node@*", "@types/node@>=13.7.0": version "20.5.8" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.8.tgz#fb171fd22d37ca6e2ea97fde88e6a13ee14bc327" @@ -785,6 +1372,14 @@ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.8.tgz#f2a7de3c107b89b441e071d5472e6b726b4adf45" integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== +"@types/readable-stream@^2.3.13": + version "2.3.15" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" + integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== + dependencies: + "@types/node" "*" + safe-buffer "~5.1.1" + "@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" @@ -792,6 +1387,11 @@ dependencies: "@types/node" "*" +"@types/validator@^13.7.17": + version "13.11.9" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.11.9.tgz#adfe96520b437a0eaa798a475877bf2f75ee402d" + integrity sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw== + "@types/ws@^7.4.4": version "7.4.7" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" @@ -859,6 +1459,30 @@ dependencies: eslint-visitor-keys "^1.1.0" +"@urql/core@2.4.4": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@urql/core/-/core-2.4.4.tgz#29f1d03cc439134259761e70a78ae20302c3d7fe" + integrity sha512-TD+OS7jG1Ts6QkpU0TZ85i/vu40r71GF0QQFDhnWFtgkHcNwnpkIwWBMa72AR3j2imBTPpk61e/xb39uM/t37A== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + wonka "^4.0.14" + +"@urql/core@>=2.3.6": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@urql/core/-/core-5.0.3.tgz#80e390399f6aa32757c42733deb5f029bf0406ad" + integrity sha512-NZ3YqRr6IphbpFjGqujJOuVuV8/QegYxfjy1zdmOSWpYYFLpmMBfVtzZ/L8IiqPERVAEAIKjUsryLnVtXJQo4w== + dependencies: + "@0no-co/graphql.web" "^1.0.5" + wonka "^6.3.2" + +"@urql/exchange-execute@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@urql/exchange-execute/-/exchange-execute-1.2.2.tgz#41a68500c44d12c4c1e6a80dfc77cefccde15687" + integrity sha512-KebdnKWMKI1NkRtIxp8YIouynOaFnhcdaMNCcJEtp+kmY4vGZUgdxT/SIzTPXXYJvk5G2aiQ/JMr97I+wM/EHA== + dependencies: + "@urql/core" ">=2.3.6" + wonka "^4.0.14" + "@whatwg-node/events@^0.0.3": version "0.0.3" resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.3.tgz#13a65dd4f5893f55280f766e29ae48074927acad" @@ -909,6 +1533,27 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" +abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3, abstract-level@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.4.tgz#3ad8d684c51cc9cbc9cf9612a7100b716c414b57" + integrity sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg== + dependencies: + buffer "^6.0.3" + catering "^2.1.0" + is-buffer "^2.0.5" + level-supports "^4.0.0" + level-transcoder "^1.0.1" + module-error "^1.0.1" + queue-microtask "^1.2.3" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -929,12 +1574,32 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +adm-zip@^0.4.16: + version "0.4.16" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" + integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== + aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -954,12 +1619,17 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.3.2: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -1045,6 +1715,11 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -1055,13 +1730,6 @@ asap@~2.0.6: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - asn1js@^3.0.1, asn1js@^3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" @@ -1088,16 +1756,18 @@ assemblyscript@0.19.23: long "^5.2.0" source-map-support "^0.5.20" -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-mutex@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.1.tgz#bccf55b96f2baf8df90ed798cb5544a1f6ee4c2c" + integrity sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA== + dependencies: + tslib "^2.4.0" + async@^3.2.3: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" @@ -1113,15 +1783,10 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" - integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== axios@^0.21.1, axios@^0.21.4: version "0.21.4" @@ -1142,23 +1807,33 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== dependencies: - tweetnacl "^0.14.3" + safe-buffer "5.1.2" bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== +bigint-crypto-utils@^3.0.23: + version "3.3.0" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77" + integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -1183,6 +1858,11 @@ binaryen@102.0.0-nightly.20211028: resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-102.0.0-nightly.20211028.tgz#8f1efb0920afd34509e342e37f84313ec936afb2" integrity sha512-GCJBVB5exbxzzvyt8MGDv/MeUjs6gkXDvf4xOIItRBptYl0Tz5sm1o/uG95YK0L0VeG5ajDu3hRtkBP2kzqC5w== +bintrees@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" + integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== + bl@^1.0.0: version "1.2.3" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" @@ -1191,6 +1871,15 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + blakejs@^1.1.0: version "1.2.1" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" @@ -1208,7 +1897,7 @@ bn.js@4.11.6: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== -bn.js@^4.11.9: +bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -1218,6 +1907,42 @@ bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1245,11 +1970,26 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== +browser-level@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.1" + module-error "^1.0.2" + run-parallel-limit "^1.1.0" + browser-readablestream-to-it@^1.0.0, browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -1262,6 +2002,13 @@ browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" +bs58@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" + integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== + dependencies: + base-x "^4.0.0" + bs58@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -1301,11 +2048,24 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer-writer@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" + integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== + buffer-xor@^1.0.3: version "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: + 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.1, buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" @@ -1321,6 +2081,11 @@ busboy@^1.6.0: dependencies: streamsearch "^1.1.0" +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + call-bind@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -1329,11 +2094,27 @@ call-bind@^1.0.0: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + cardinal@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" @@ -1342,11 +2123,21 @@ cardinal@^2.1.1: ansicolors "~0.3.2" redeyed "~2.1.0" +case@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9" + integrity sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ== + caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== +catering@^2.1.0, catering@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== + cborg@^1.5.4, cborg@^1.6.0: version "1.10.2" resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" @@ -1369,7 +2160,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.2: +chalk@^4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1377,6 +2168,11 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + chokidar@3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -1392,16 +2188,36 @@ chokidar@3.5.3: optionalDependencies: fsevents "~2.3.2" -chownr@^1.0.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - +chokidar@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.0.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + 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" @@ -1410,6 +2226,22 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +classic-level@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.4.1.tgz#169ecf9f9c6200ad42a98c8576af449c1badbaee" + integrity sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ== + dependencies: + abstract-level "^1.0.2" + catering "^2.1.0" + module-error "^1.0.1" + napi-macros "^2.2.2" + node-gyp-build "^4.3.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + clean-stack@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" @@ -1436,6 +2268,11 @@ cli-spinners@^2.2.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + cli-table3@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" @@ -1446,6 +2283,20 @@ cli-table3@0.6.0: optionalDependencies: colors "^1.1.2" +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -1480,13 +2331,23 @@ colors@1.4.0, colors@^1.1.2: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" +command-exists@^1.2.8: + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + +commander@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1514,16 +2375,46 @@ console-table-printer@^2.11.1: dependencies: simple-wcswidth "^1.0.1" -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cors@2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + cosmiconfig@7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" @@ -1535,6 +2426,11 @@ cosmiconfig@7.0.1: path-type "^4.0.0" yaml "^1.10.0" +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -1563,6 +2459,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-fetch@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== + dependencies: + node-fetch "^2.6.12" + cross-spawn@7.0.3, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1572,14 +2475,14 @@ cross-spawn@7.0.3, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: - assert-plus "^1.0.0" + ms "2.0.0" -debug@4.3.4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1593,6 +2496,11 @@ debug@^3.2.6: dependencies: ms "^2.1.1" +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -1605,6 +2513,15 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + delay@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" @@ -1615,6 +2532,21 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -1669,20 +2601,32 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== +dottie@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.6.tgz#34564ebfc6ec5e5772272d466424ad5b696484d4" + integrity sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA== + +duplexify@^4.1.1, duplexify@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" + integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.2" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -ejs@3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" - integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== +ejs@3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== dependencies: - jake "^10.6.1" + jake "^10.8.5" ejs@^3.1.8: version "3.1.9" @@ -1711,11 +2655,29 @@ elliptic@6.5.4, elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.5.2: + version "6.5.5" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded" + integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -1723,7 +2685,7 @@ encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -1737,7 +2699,7 @@ enquirer@2.3.6: dependencies: ansi-colors "^4.1.1" -enquirer@^2.3.5: +enquirer@^2.3.0, enquirer@^2.3.5, enquirer@^2.3.6: version "2.4.1" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== @@ -1745,6 +2707,11 @@ enquirer@^2.3.5: ansi-colors "^4.1.1" strip-ansi "^6.0.1" +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + err-code@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" @@ -1757,6 +2724,18 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -1769,6 +2748,16 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -1893,6 +2882,11 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + ethereum-bloom-filters@^1.0.6: version "1.0.10" resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" @@ -1900,7 +2894,7 @@ ethereum-bloom-filters@^1.0.6: dependencies: js-sha3 "^0.8.0" -ethereum-cryptography@^0.1.3: +ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== @@ -1921,7 +2915,38 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereumjs-util@^7.1.0: +ethereum-cryptography@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz#5ccfa183e85fdaf9f9b299a79430c044268c9b3a" + integrity sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw== + dependencies: + "@noble/hashes" "1.2.0" + "@noble/secp256k1" "1.7.1" + "@scure/bip32" "1.1.5" + "@scure/bip39" "1.1.1" + +ethereumjs-abi@^0.6.8: + version "0.6.8" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== + dependencies: + bn.js "^4.11.8" + ethereumjs-util "^6.0.0" + +ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== + dependencies: + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" + +ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.4: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -1932,7 +2957,43 @@ ethereumjs-util@^7.1.0: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethers@^5.6.0: +ethers@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.0.tgz#0055da174b9e076b242b8282638bc94e04b39835" + integrity sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.0" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.0" + "@ethersproject/wordlists" "5.7.0" + +ethers@^5.1.0, ethers@^5.6.0, ethers@^5.7.0, ethers@^5.7.1: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -1976,6 +3037,14 @@ ethjs-unit@0.1.6: bn.js "4.11.6" number-to-bn "1.7.0" +ethjs-util@0.1.6, ethjs-util@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + 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" @@ -2004,20 +3073,51 @@ execa@5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== +express@4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" eyes@^0.1.8: version "0.1.8" @@ -2060,6 +3160,13 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-levenshtein@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz#37b899ae47e1090e40e3fd2318e4d5f0142ca912" + integrity sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ== + dependencies: + fastest-levenshtein "^1.0.7" + fast-querystring@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" @@ -2067,6 +3174,11 @@ fast-querystring@^1.1.1: dependencies: fast-decode-uri-component "^1.0.1" +fast-redact@^3.0.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.5.0.tgz#e9ea02f7e57d0cd8438180083e93077e496285e4" + integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== + fast-url-parser@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" @@ -2074,6 +3186,16 @@ fast-url-parser@^1.1.3: dependencies: punycode "^1.3.2" +fastest-levenshtein@^1.0.7: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastify-warning@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/fastify-warning/-/fastify-warning-0.2.0.tgz#e717776026a4493dc9a2befa44db6d17f618008f" + integrity sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw== + fastq@^1.6.0: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -2081,6 +3203,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -2102,6 +3231,34 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + flat-cache@^3.0.4: version "3.1.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" @@ -2111,21 +3268,26 @@ flat-cache@^3.0.4: keyv "^4.5.3" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +follow-redirects@^1.12.1: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + follow-redirects@^1.14.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -forever-agent@~0.6.1: - version "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.2.0: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" @@ -2135,14 +3297,25 @@ form-data@^2.2.0: combined-stream "^1.0.6" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fp-ts@1.19.3: + version "1.19.3" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f" + integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== + +fp-ts@^1.0.0: + version "1.19.5" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" + integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-constants@^1.0.0: version "1.0.0" @@ -2159,6 +3332,26 @@ fs-extra@9.1.0, fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-jetpack@4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-4.3.1.tgz#cdfd4b64e6bfdec7c7dc55c76b39efaa7853bb20" @@ -2189,11 +3382,21 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-intrinsic@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" @@ -2204,6 +3407,17 @@ get-intrinsic@^1.0.2: has-proto "^1.0.1" has-symbols "^1.0.3" +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-iterator@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" @@ -2224,13 +3438,6 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -2238,6 +3445,29 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + glob@9.3.5: version "9.3.5" resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" @@ -2279,10 +3509,10 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -gluegun@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-5.1.2.tgz#ffa0beda0fb6bbc089a867157b08602beae2c8cf" - integrity sha512-Cwx/8S8Z4YQg07a6AFsaGnnnmd8mN17414NcPS3OoDtZRwxgsvwRNJNg69niD6fDa8oNwslCG0xH7rEpRNNE/g== +gluegun@5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-5.1.6.tgz#74ec13193913dc610f5c1a4039972c70c96a7bad" + integrity sha512-9zbi4EQWIVvSOftJWquWzr9gLX2kaDgPkNR5dYWbM53eVvCI3iKuxLlnKoHC0v4uPoq+Kr/+F569tjoFbA4DSA== dependencies: apisauce "^2.1.5" app-module-path "^2.2.0" @@ -2290,7 +3520,7 @@ gluegun@5.1.2: colors "1.4.0" cosmiconfig "7.0.1" cross-spawn "7.0.3" - ejs "3.1.6" + ejs "3.1.8" enquirer "2.3.6" execa "5.1.1" fs-jetpack "4.3.1" @@ -2315,7 +3545,14 @@ gluegun@5.1.2: which "2.0.2" yargs-parser "^21.0.0" -graceful-fs@^4.1.6, graceful-fs@^4.2.0: +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -2325,28 +3562,88 @@ graphql-import-node@^0.0.5: resolved "https://registry.yarnpkg.com/graphql-import-node/-/graphql-import-node-0.0.5.tgz#caf76a6cece10858b14f27cce935655398fc1bf0" integrity sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q== +graphql-tag@2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + graphql@15.5.0: version "15.5.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== -graphql@^16.6.0: +graphql@16.8.0, graphql@^16.6.0: version "16.8.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.0.tgz#374478b7f27b2dc6153c8f42c1b80157f79d79d4" integrity sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== +hardhat-secure-accounts@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/hardhat-secure-accounts/-/hardhat-secure-accounts-0.0.6.tgz#414d58f9fe27b3042d9912904efe5f3ee4fbce9f" + integrity sha512-KnSLrjdNdxg5YJ4/FZ0Ogf1S4nR0YdlIWG9DLMyUurF0S345yzKt0IMPDqcG5/MNDI/hMNfSv6/AQuBWZ4i21w== dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" + debug "^4.3.4" + enquirer "^2.3.6" + lodash.clonedeep "^4.5.0" + prompt-sync "^4.2.0" + +hardhat@~2.14.0: + version "2.14.1" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.14.1.tgz#4dd252717f4987d8221c4f6fd08233b7f4251fd8" + integrity sha512-H3Qp/UKyQGmPDDBSfMoSyH18rRnac90rsb0LNer+sKe6at6rxLe4D5j+M+1icqZQF02iLPjNRwc/PA8OPf757A== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@metamask/eth-sig-util" "^4.0.0" + "@nomicfoundation/ethereumjs-block" "5.0.1" + "@nomicfoundation/ethereumjs-blockchain" "7.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.1" + "@nomicfoundation/ethereumjs-evm" "2.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-statemanager" "2.0.1" + "@nomicfoundation/ethereumjs-trie" "6.0.1" + "@nomicfoundation/ethereumjs-tx" "5.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-vm" "7.0.1" + "@nomicfoundation/solidity-analyzer" "^0.1.0" + "@sentry/node" "^5.18.1" + "@types/bn.js" "^5.1.0" + "@types/lru-cache" "^5.1.0" + abort-controller "^3.0.0" + adm-zip "^0.4.16" + aggregate-error "^3.0.0" + ansi-escapes "^4.3.0" + chalk "^2.4.2" + chokidar "^3.4.0" + ci-info "^2.0.0" + debug "^4.1.1" + enquirer "^2.3.0" + env-paths "^2.2.0" + ethereum-cryptography "^1.0.3" + ethereumjs-abi "^0.6.8" + find-up "^2.1.0" + fp-ts "1.19.3" + fs-extra "^7.0.1" + glob "7.2.0" + immutable "^4.0.0-rc.12" + io-ts "1.10.4" + keccak "^3.0.2" + lodash "^4.17.11" + mnemonist "^0.38.0" + mocha "^10.0.0" + p-map "^4.0.0" + qs "^6.7.0" + raw-body "^2.4.1" + resolve "1.17.0" + semver "^6.3.0" + solc "0.7.3" + source-map-support "^0.5.13" + stacktrace-parser "^0.1.10" + tsort "0.0.1" + undici "^5.14.0" + uuid "^8.3.2" + ws "^7.4.6" has-flag@^3.0.0: version "3.0.0" @@ -2358,6 +3655,13 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + has-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" @@ -2392,6 +3696,23 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +helmet@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/helmet/-/helmet-7.0.0.tgz#ac3011ba82fa2467f58075afa58a49427ba6212d" + integrity sha512-MsIgYmdBh460ZZ8cJC81q4XJknjG567wzEmv46WOBblDb6TUd3z8/GhgmsM9pn8g2B80tAJ4m5/d3Bi1KrSUBQ== + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -2411,6 +3732,17 @@ http-basic@^8.1.1: http-response-object "^3.0.1" parse-cache-control "^1.0.1" +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + http-response-object@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-3.0.2.tgz#7f435bb210454e4360d074ef1f989d5ea8aa9810" @@ -2418,14 +3750,13 @@ http-response-object@^3.0.1: dependencies: "@types/node" "^10.0.3" -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" + agent-base "6" + debug "4" human-signals@^2.1.0: version "2.1.0" @@ -2437,6 +3768,13 @@ hyperlinker@^1.0.0: resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -2444,7 +3782,7 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.2.1: +ieee754@^1.1.13, 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== @@ -2464,6 +3802,11 @@ immutable@4.2.1: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== +immutable@^4.0.0-rc.12: + version "4.3.5" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" + integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -2482,6 +3825,11 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +inflection@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.4.tgz#65aa696c4e2da6225b148d7a154c449366633a32" + integrity sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2490,11 +3838,32 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, 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== +inquirer@^8.0.0: + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + interface-datastore@^6.0.2: version "6.1.1" resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" @@ -2509,11 +3878,23 @@ interface-store@^2.0.2: resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== +io-ts@1.10.4: + version "1.10.4" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" + integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== + dependencies: + fp-ts "^1.0.0" + 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== +ipaddr.js@1.9.1: + version "1.9.1" + 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.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz#cb201ff7a9470651ba14c4e7fae56661a55bf37e" @@ -2616,6 +3997,11 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-buffer@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-docker@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" @@ -2675,10 +4061,10 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-wsl@^2.2.0: version "2.2.0" @@ -2712,11 +4098,6 @@ isomorphic-ws@^4.0.1: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - it-all@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" @@ -2762,7 +4143,7 @@ it-to-stream@^1.0.0: p-fifo "^1.0.0" readable-stream "^3.6.0" -jake@^10.6.1, jake@^10.8.5: +jake@^10.8.5: version "10.8.7" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== @@ -2790,6 +4171,11 @@ jayson@4.0.0: uuid "^8.3.2" ws "^7.4.5" +js-sdsl@^4.1.4: + version "4.4.2" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847" + integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== + js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -2808,18 +4194,13 @@ js-yaml@3.14.1, js-yaml@^3.13.1, js-yaml@^3.14.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: +js-yaml@4.1.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -2840,21 +4221,30 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -2869,16 +4259,6 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - keccak@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" @@ -2888,6 +4268,15 @@ keccak@^3.0.0: node-gyp-build "^4.2.0" readable-stream "^3.6.0" +keccak@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + keyv@^4.5.3: version "4.5.3" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" @@ -2895,6 +4284,35 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== + optionalDependencies: + graceful-fs "^4.1.9" + +level-supports@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== + +level-transcoder@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== + dependencies: + buffer "^6.0.3" + module-error "^1.0.1" + +level@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.1.tgz#737161db1bc317193aca4e7b6f436e7e1df64379" + integrity sha512-oPBGkheysuw7DmzFQYyFe8NAia5jFLAgEnkgWnK3OXAuJr8qFT+xBQIwokAZPME2bhPFzS8hlYcL16m8UZrtwQ== + dependencies: + abstract-level "^1.0.4" + browser-level "^1.0.1" + classic-level "^1.2.0" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -2908,11 +4326,31 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + lodash.kebabcase@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" @@ -2993,11 +4431,19 @@ lodash.upperfirst@^4.3.1: resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== -lodash@^4.17.15: +lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@4.1.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + log-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" @@ -3015,6 +4461,13 @@ long@^5.2.0: resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3027,11 +4480,28 @@ lru-cache@^6.0.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== + make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +matchstick-as@0.6.0-beta.2: + version "0.6.0-beta.2" + resolved "https://registry.yarnpkg.com/matchstick-as/-/matchstick-as-0.6.0-beta.2.tgz#0dd1cff1c01b2b34b2176aa0a41cd3a36a2177d9" + integrity sha512-bthIVZTN4qMz3XkSfHoS+YAUvPdCHFcrN3sWhSQ9GiSaX5I5WTtVNW3nXitD1aWsEiqA7fTUApLmAfjubVsb3w== + dependencies: + wabt "1.0.24" + +mcl-wasm@^0.7.1: + version "0.7.9" + resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" + integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -3041,6 +4511,30 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memory-level@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" + integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== + dependencies: + abstract-level "^1.0.0" + functional-red-black-tree "^1.0.1" + module-error "^1.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + merge-options@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" @@ -3058,6 +4552,11 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -3071,13 +4570,18 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.19: +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -3093,6 +4597,13 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -3161,12 +4672,78 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mnemonist@^0.38.0: + version "0.38.5" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" + integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== + dependencies: + obliterator "^2.0.0" + +mocha@^10.0.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" + integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "8.1.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +module-error@^1.0.1, module-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" + integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== + +moment-timezone@^0.5.43: + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== + dependencies: + moment "^2.29.4" + +moment@^2.29.4: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +morgan@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@2.1.3, ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -3200,11 +4777,21 @@ mustache@^4.0.1: resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +napi-macros@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" + integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== + native-abort-controller@^1.0.3, native-abort-controller@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251" @@ -3225,12 +4812,22 @@ natural-orderby@^2.0.3: resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016" integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +ngeohash@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/ngeohash/-/ngeohash-0.6.3.tgz#10b1e80be5488262ec95c56cf2dbb6c45fbdf245" + integrity sha512-kltF0cOxgx1AbmVzKxYZaoB0aj7mOxZeHaerEtQV0YaqnkXNq26WWqMmJ6lTqShYxVRWZ/mwvvTrNeOwdslWiw== + node-addon-api@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@^2.6.8: +node-fetch@^2.6.12, node-fetch@^2.6.8: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -3242,6 +4839,11 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.1.tgz#24b6d075e5e391b8d5539d98c7fc5c210cac8a3e" integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== +node-gyp-build@^4.3.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -3262,16 +4864,16 @@ number-to-bn@1.7.0: bn.js "4.11.6" strip-hex-prefix "1.0.0" -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.0: +object-assign@^4, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" @@ -3282,6 +4884,35 @@ object-treeify@^1.1.33: resolved "https://registry.yarnpkg.com/object-treeify/-/object-treeify-1.1.33.tgz#f06fece986830a3cba78ddd32d4c11d1f76cdf40" integrity sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A== +obliterator@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== + +on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" + integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -3321,6 +4952,26 @@ ora@4.0.2: strip-ansi "^5.2.0" wcwidth "^1.0.1" +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + p-defer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" @@ -3334,6 +4985,51 @@ p-fifo@^1.0.0: fast-fifo "^1.0.0" p-defer "^3.0.0" +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +packet-reader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" + integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -3361,6 +5057,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + password-prompt@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.3.tgz#05e539f4e7ca4d6c865d479313f10eb9db63ee5f" @@ -3369,6 +5070,16 @@ password-prompt@^1.1.2: ansi-escapes "^4.3.2" cross-spawn "^7.0.3" +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -3379,6 +5090,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + path-scurry@^1.6.1: version "1.10.1" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" @@ -3387,6 +5103,11 @@ path-scurry@^1.6.1: lru-cache "^9.1.1 || ^10.0.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -3403,30 +5124,165 @@ pbkdf2@^3.0.17: safe-buffer "^5.0.1" sha.js "^2.4.8" -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.1, pg-connection-string@^2.6.2: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-hstore@2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/pg-hstore/-/pg-hstore-2.3.4.tgz#4425e3e2a3e15d2a334c35581186c27cf2e9b8dd" + integrity sha512-N3SGs/Rf+xA1M2/n0JBiXFDVMzdekwLZLAO0g7mpDY9ouX+fDI7jS6kTq3JujmYbtNSJ53TJ0q4G98KVZSM4EA== + dependencies: + underscore "^1.13.1" + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.6.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@8.11.3: + version "8.11.3" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.3.tgz#d7db6e3fe268fcedd65b8e4599cda0b8b4bf76cb" + integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g== + dependencies: + buffer-writer "2.0.0" + packet-reader "1.0.0" + pg-connection-string "^2.6.2" + pg-pool "^3.6.1" + pg-protocol "^1.6.0" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pino-abstract-transport@v0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" + integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== + dependencies: + duplexify "^4.1.2" + split2 "^4.0.0" + +pino-multi-stream@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pino-multi-stream/-/pino-multi-stream-6.0.0.tgz#2116bca740cb5eb606f430b20fd480f4944b2b99" + integrity sha512-oCuTtaDSUB5xK1S45r9oWE0Dj8RWdHVvaGTft5pO/rmzgIqQRkilf5Ooilz3uRm0IYj8sPRho3lVx48LCmXjvQ== + dependencies: + pino "^7.0.0" + +pino-std-serializers@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" + integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== + +pino@7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-7.6.0.tgz#f9abd13e221e15855e3cf6e88a2b6280527b3800" + integrity sha512-CCCdryvM/chT0CDt9jQ1//z62RpSXPrzUFUpY4b8eKCVq3T2T3UF6DomoczkPze9d6VFiTyVF6Y8A6F9iAyAxg== + dependencies: + fast-redact "^3.0.0" + fastify-warning "^0.2.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.13.0" + +pino@^7.0.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" + integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.0.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.15.1" + pluralize@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== prettier@^2.0.5: version "2.8.8" @@ -3438,11 +5294,23 @@ 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-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +prom-client@14.2.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11" + integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA== + dependencies: + tdigest "^0.1.1" + promise@^8.0.0: version "8.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" @@ -3450,6 +5318,13 @@ promise@^8.0.0: dependencies: asap "~2.0.6" +prompt-sync@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/prompt-sync/-/prompt-sync-4.2.0.tgz#0198f73c5b70e3b03e4b9033a50540a7c9a1d7f4" + integrity sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw== + dependencies: + strip-ansi "^5.0.0" + protobufjs@^6.10.2: version "6.11.4" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" @@ -3469,10 +5344,13 @@ protobufjs@^6.10.2: "@types/node" ">=13.7.0" long "^4.0.0" -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" pump@^1.0.0: version "1.0.3" @@ -3482,12 +5360,29 @@ pump@^1.0.0: end-of-stream "^1.1.0" once "^1.3.1" +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-2.0.1.tgz#abfc7b5a621307c728b551decbbefb51f0e4aa1e" + integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw== + dependencies: + duplexify "^4.1.1" + inherits "^2.0.3" + pump "^3.0.0" + punycode@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== @@ -3504,6 +5399,13 @@ pvutils@^1.1.3: resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + qs@^6.4.0: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" @@ -3511,16 +5413,23 @@ qs@^6.4.0: dependencies: side-channel "^1.0.4" -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== +qs@^6.7.0: + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== + dependencies: + side-channel "^1.0.6" -queue-microtask@^1.2.2: +queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -3528,6 +5437,31 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.2, raw-body@^2.4.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + react-native-fetch-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz#81e1bb6562c292521bc4eca52fe1097f4c1ebab5" @@ -3535,6 +5469,15 @@ react-native-fetch-api@^3.0.0: dependencies: p-defer "^3.0.0" +"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -3548,15 +5491,6 @@ readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readable-stream@~1.0.26-4: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -3574,6 +5508,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +real-require@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" + integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== + receptacle@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" @@ -3593,33 +5532,12 @@ regexpp@^3.0.0, regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -request@2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-from-string@^2.0.2: +require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -3629,6 +5547,13 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve@1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -3642,12 +5567,17 @@ retimer@^3.0.0: resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df" integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA== +retry-as-promised@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-7.0.4.tgz#9df73adaeea08cb2948b9d34990549dc13d800a2" + integrity sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA== + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.6.3: +rimraf@^2.2.8, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -3669,13 +5599,25 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.2.4: +rlp@^2.2.3, rlp@^2.2.4: version "2.2.7" resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== dependencies: bn.js "^5.2.0" +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" + integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== + dependencies: + queue-microtask "^1.2.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -3683,17 +5625,34 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +rustbn.js@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" + integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== + +rxjs@^7.5.5: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-stable-stringify@^2.1.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -3726,6 +5685,16 @@ semver@7.4.0: dependencies: lru-cache "^6.0.0" +semver@^5.5.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.3.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + semver@^7.2.1, semver@^7.3.2, semver@^7.3.7: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" @@ -3733,11 +5702,98 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.7: dependencies: lru-cache "^6.0.0" +semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +sequelize-pool@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-7.1.0.tgz#210b391af4002762f823188fd6ecfc7413020768" + integrity sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg== + +sequelize@6.33.0: + version "6.33.0" + resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.33.0.tgz#45c70d52687f1c7eae3a0496f21f7055d99b46da" + integrity sha512-GkeCbqgaIcpyZ1EyXrDNIwktbfMldHAGOVXHGM4x8bxGSRAOql5htDWofPvwpfL/FoZ59CaFmfO3Mosv1lDbQw== + dependencies: + "@types/debug" "^4.1.8" + "@types/validator" "^13.7.17" + debug "^4.3.4" + dottie "^2.0.6" + inflection "^1.13.4" + lodash "^4.17.21" + moment "^2.29.4" + moment-timezone "^0.5.43" + pg-connection-string "^2.6.1" + retry-as-promised "^7.0.4" + semver "^7.5.4" + sequelize-pool "^7.1.0" + toposort-class "^1.0.1" + uuid "^8.3.2" + validator "^13.9.0" + wkx "^0.5.0" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -3767,6 +5823,16 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -3791,7 +5857,29 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -source-map-support@^0.5.20: +solc@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" + integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== + dependencies: + command-exists "^1.2.8" + commander "3.0.2" + follow-redirects "^1.12.1" + fs-extra "^0.30.0" + js-sha3 "0.8.0" + memorystream "^0.3.1" + require-from-string "^2.0.0" + semver "^5.5.0" + tmp "0.0.33" + +sonic-boom@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" + integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== + dependencies: + atomic-sleep "^1.0.0" + +source-map-support@^0.5.13, source-map-support@^0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -3809,25 +5897,39 @@ split-ca@^1.0.0: resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" integrity sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ== +split2@^3.1.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split2@^4.0.0, split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" +stacktrace-parser@^0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== + dependencies: + type-fest "^0.7.1" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stream-shift@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== stream-to-it@^0.2.2: version "0.2.4" @@ -3869,7 +5971,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^5.2.0: +strip-ansi@^5.0.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -3895,11 +5997,18 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +supports-color@8.1.1, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -3914,13 +6023,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-hyperlinks@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" @@ -3991,6 +6093,13 @@ tar@^6.1.0: mkdirp "^1.0.3" yallist "^4.0.0" +tdigest@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" + integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA== + dependencies: + bintrees "1.0.2" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -4013,7 +6122,29 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" -"through@>=2.2.7 <3": +thread-stream@^0.13.0: + version "0.13.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.13.2.tgz#de8ea87584baee625c631947ec73494aa86131c8" + integrity sha512-woZFt0cLFkPdhsa+IGpRo1jiSouaHxMIljzTgt30CMjBWoUYbbcHqnunW5Yv+BXko9H05MVIcxMipI3Jblallw== + dependencies: + real-require "^0.1.0" + +thread-stream@^0.15.1: + version "0.15.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" + integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== + dependencies: + real-require "^0.1.0" + +through2@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + +"through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -4034,6 +6165,13 @@ tmp-promise@3.0.3: dependencies: tmp "^0.2.0" +tmp@0.0.33, tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + tmp@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" @@ -4053,13 +6191,15 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toposort-class@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988" + integrity sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg== tr46@~0.0.3: version "0.0.3" @@ -4085,16 +6225,21 @@ ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^1.8.1: +tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1: +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tsort@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" + integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== + tsutils@^3.17.1: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -4102,17 +6247,15 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" +tweetnacl-util@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -4131,6 +6274,19 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -4148,11 +6304,33 @@ uint8arrays@^3.0.0: dependencies: multiformats "^9.4.2" +underscore@^1.13.1: + version "1.13.6" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" + integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== + +undici@^5.14.0: + version "5.28.4" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" + integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== + dependencies: + "@fastify/busboy" "^2.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -4175,10 +6353,10 @@ 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== -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^8.3.2: version "8.3.2" @@ -4195,19 +6373,25 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== +validator@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" + integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== + 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== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +wabt@1.0.24: + version "1.0.24" + resolved "https://registry.yarnpkg.com/wabt/-/wabt-1.0.24.tgz#c02e0b5b4503b94feaf4a30a426ef01c1bea7c6c" + integrity sha512-8l7sIOd3i5GWfTWciPL0+ff/FK/deVK2Q6FN+MPz4vfUcD78i2M/49XJTwF6aml91uIiuXJEsLKWMB2cw/mtKg== wcwidth@^1.0.1: version "1.0.1" @@ -4280,11 +6464,42 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +wkx@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.5.0.tgz#c6c37019acf40e517cc6b94657a25a3d4aa33e8c" + integrity sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg== + dependencies: + "@types/node" "*" + +wonka@^4.0.14: + version "4.0.15" + resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.15.tgz#9aa42046efa424565ab8f8f451fcca955bf80b89" + integrity sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg== + +wonka@^6.3.2: + version "6.3.4" + resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.3.4.tgz#76eb9316e3d67d7febf4945202b5bdb2db534594" + integrity sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg== + wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +wrap-ansi@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -4304,7 +6519,7 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -ws@^7.4.5: +ws@^7.4.5, ws@^7.4.6: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== @@ -4314,6 +6529,16 @@ xtend@^4.0.0: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -4324,12 +6549,50 @@ yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + yargs-parser@^21.0.0: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==