diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index 53f5f5138..27d9c3c39 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -8,6 +8,7 @@ env: NETWORK: "arbitrum-goerli" COORDINATOR_ETH_PK: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_WALLET_PRIVATE_KEY }} COORDINATOR_PK: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_MACI_PRIVATE_KEY }} + JSONRPC_HTTP_URL: ${{ secrets.JSONRPC_HTTP_URL }} ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY_ARBITRUM }} ETHERSCAN_URL: "https://api-goerli.arbiscan.io" @@ -53,7 +54,7 @@ jobs: # tally and finalize cd contracts yarn hardhat run --network "${NETWORK}" scripts/tally.ts - yarn hardhat run --network "${NETWORK}" scripts/finalize.ts curl --location --request POST 'https://api.pinata.cloud/pinning/pinFileToIPFS' \ --header "Authorization: Bearer ${{ secrets.PINATA_JWT }}" \ --form 'file=@"tally.json"' + JSONRPC_HTTP_URL=${{env.JSONRPC_HTTP_URL}} yarn hardhat run --network "${NETWORK}" scripts/finalize.ts diff --git a/.prettierrc b/.prettierrc index bfe3a75bf..2a658caa4 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,5 @@ { + "arrowParens": "always", "printWidth": 80, "tabWidth": 2, "useTabs": false, diff --git a/README.md b/README.md index 637278ecc..ce5b32d57 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,6 @@ to run `yarn test` or `yarn test:contracts`. - [Vuelidate](https://vuelidate-next.netlify.app/) - [Vue js modal](http://vue-js-modal.yev.io/) - [Ethers](https://docs.ethers.io/v5/) - - [Gun](https://gun.eco/docs/) ### Visual Studio Code diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 1b3370533..b64890636 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -19,7 +19,7 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice using SafeERC20 for ERC20; // Constants - uint256 private constant MAX_VOICE_CREDITS = 10 ** 9; // MACI allows 2 ** 32 voice credits max + uint256 private constant MAX_VOICE_CREDITS = 10 ** 9; // MACI allows 2 ** 32 voice credits max uint256 private constant MAX_CONTRIBUTION_AMOUNT = 10 ** 4; // In tokens uint256 private constant ALPHA_PRECISION = 10 ** 18; // to account for loss of precision in division uint8 private constant LEAVES_PER_NODE = 5; // leaves per node of the tally result tree diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 9d785d3d9..75182e9a1 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -4,7 +4,7 @@ import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { BigNumber, Contract, Signer, Wallet, utils } from 'ethers' import { genProofs, proveOnChain } from 'maci-cli' -import { Keypair } from 'maci-domainobjs' +import { Keypair, createMessage, Message, PubKey } from '@clrfund/maci-utils' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' @@ -12,15 +12,14 @@ import { deployContract, deployMaciFactory, deployPoseidon, + CIRCUITS, } from '../utils/deployment' import { getIpfsHash } from '../utils/ipfs' import { MaciParameters, - createMessage, addTallyResultsBatch, getRecipientClaimData, } from '../utils/maci' -import { CIRCUITS } from '../utils/deployment' use(solidity) @@ -300,8 +299,8 @@ describe('End-to-end Tests', function () { // Submit messages for (const contribution of contributions) { const contributor = contribution.signer - const messages = [] - const encPubKeys = [] + const messages: Message[] = [] + const encPubKeys: PubKey[] = [] let nonce = 1 // Change key @@ -361,8 +360,8 @@ describe('End-to-end Tests', function () { const contributor = contribution.signer const voiceCredits = contribution.voiceCredits.div(4) let nonce = 1 - const messages = [] - const encPubKeys = [] + const messages: Message[] = [] + const encPubKeys: PubKey[] = [] for (const recipientIndex of [1, 2]) { const [message, encPubKey] = createMessage( @@ -403,8 +402,8 @@ describe('End-to-end Tests', function () { [2, contribution.voiceCredits.div(2)], [1, contribution.voiceCredits.div(2)], ] - const messages = [] - const encPubKeys = [] + const messages: Message[] = [] + const encPubKeys: PubKey[] = [] let nonce = 1 for (const [recipientIndex, voiceCredits] of votes) { const [message, encPubKey] = createMessage( @@ -462,8 +461,8 @@ describe('End-to-end Tests', function () { [1, ZERO], [2, contribution.voiceCredits], ] - const messages = [] - const encPubKeys = [] + const messages: Message[] = [] + const encPubKeys: PubKey[] = [] let nonce = 1 for (const [recipientIndex, voiceCredits] of votes) { const [message, encPubKey] = createMessage( @@ -530,8 +529,8 @@ describe('End-to-end Tests', function () { ], ] for (const batch of votes) { - const messages = [] - const encPubKeys = [] + const messages: Message[] = [] + const encPubKeys: PubKey[] = [] let nonce = 1 for (const [recipientIndex, voiceCredits] of batch) { const [message, encPubKey] = createMessage( @@ -591,8 +590,8 @@ describe('End-to-end Tests', function () { let encPubKey // Vote for recipient 1 for a bribe immediately after signup - const messageBatch1 = [] - const encPubKeyBatch1 = [] + const messageBatch1: Message[] = [] + const encPubKeyBatch1: PubKey[] = [] ;[message, encPubKey] = createMessage( contribution.stateIndex, contribution.keypair, @@ -623,8 +622,8 @@ describe('End-to-end Tests', function () { // Wait for signup period to end to override votes await provider.send('evm_increaseTime', [maciParameters.signUpDuration]) - const messageBatch2 = [] - const encPubKeyBatch2 = [] + const messageBatch2: Message[] = [] + const encPubKeyBatch2: PubKey[] = [] // Change key const newContributorKeypair = new Keypair() ;[message, encPubKey] = createMessage( diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 129b54b44..e9b5b931e 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -14,6 +14,7 @@ dotenv.config() const GAS_LIMIT = 20000000 const WALLET_MNEMONIC = process.env.WALLET_MNEMONIC const WALLET_PRIVATE_KEY = process.env.WALLET_PRIVATE_KEY +const WALLET_PRIVATE_KEY_2 = process.env.WALLET_PRIVATE_KEY_2 let accounts if (WALLET_MNEMONIC) { @@ -23,6 +24,10 @@ if (WALLET_PRIVATE_KEY) { accounts = [WALLET_PRIVATE_KEY] } +if (WALLET_PRIVATE_KEY_2) { + accounts = [...accounts, WALLET_PRIVATE_KEY_2] +} + const config: HardhatUserConfig = { networks: { hardhat: { diff --git a/contracts/package.json b/contracts/package.json index 8f8718c8c..eba5e0634 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -28,6 +28,8 @@ "solidity-rlp": "2.0.3" }, "devDependencies": { + "@clrfund/maci-utils": "^0.0.1", + "@ethereum-waffle/mock-contract": "^3.4.4", "@kleros/gtcr-encoder": "^1.4.0", "@nomiclabs/hardhat-ethers": "^2.2.1", "@nomiclabs/hardhat-etherscan": "^3.1.4", @@ -36,10 +38,10 @@ "@types/chai": "^4.2.11", "@types/mocha": "^7.0.2", "@types/node": "^13.9.2", - "@typescript-eslint/eslint-plugin": "^2.34.0", - "@typescript-eslint/parser": "^2.34.0", + "@typescript-eslint/eslint-plugin": "5.48.2", + "@typescript-eslint/parser": "5.48.2", "chai": "^4.2.0", - "eslint": "^6.8.0", + "eslint": "7.32.0", "eslint-config-prettier": "^8.3.0", "ethereum-waffle": "^3.4.4", "ethers": "^5.7.2", @@ -47,11 +49,9 @@ "hardhat-contract-sizer": "^2.6.1", "ipfs-only-hash": "^2.0.1", "maci-cli": "npm:@clrfund/maci-cli@0.10.2", - "maci-crypto": "npm:@clrfund/maci-crypto@0.10.2", - "maci-domainobjs": "npm:@clrfund/maci-domainobjs@0.10.2", "solhint": "^3.3.2", "ts-generator": "^0.0.8", "ts-node": "^8.8.1", - "typescript": "^3.8.3" + "typescript": "4.1.2" } } diff --git a/contracts/scripts/contribute.ts b/contracts/scripts/contribute.ts index c35df3159..7d7dedd77 100644 --- a/contracts/scripts/contribute.ts +++ b/contracts/scripts/contribute.ts @@ -1,6 +1,6 @@ import fs from 'fs' import { ethers } from 'hardhat' -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' diff --git a/contracts/scripts/deploy.ts b/contracts/scripts/deploy.ts index f014cd2e2..d856607fd 100644 --- a/contracts/scripts/deploy.ts +++ b/contracts/scripts/deploy.ts @@ -3,7 +3,7 @@ import { Contract, utils, Wallet } from 'ethers' import { UNIT } from '../utils/constants' import { deployMaciFactory } from '../utils/deployment' -import { Keypair, PrivKey } from 'maci-domainobjs' +import { Keypair, PrivKey } from '@clrfund/maci-utils' /** * Set the coordinator address and maci public key in the funding round factory diff --git a/contracts/scripts/deployRound.ts b/contracts/scripts/deployRound.ts index 5687bfa9d..faa6b99fa 100644 --- a/contracts/scripts/deployRound.ts +++ b/contracts/scripts/deployRound.ts @@ -1,6 +1,6 @@ import { ethers } from 'hardhat' import { Contract, utils } from 'ethers' -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' import { deployMaciFactory } from '../utils/deployment' import { getEventArg } from '../utils/contracts' diff --git a/contracts/scripts/deployTestRound.ts b/contracts/scripts/deployTestRound.ts index 1ec202645..469269d20 100644 --- a/contracts/scripts/deployTestRound.ts +++ b/contracts/scripts/deployTestRound.ts @@ -1,6 +1,6 @@ import fs from 'fs' import { ethers } from 'hardhat' -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' diff --git a/contracts/scripts/generate-key.ts b/contracts/scripts/generate-key.ts index 535da7d2a..d5b3293c3 100644 --- a/contracts/scripts/generate-key.ts +++ b/contracts/scripts/generate-key.ts @@ -1,4 +1,4 @@ -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' async function main() { const keypair = new Keypair() diff --git a/contracts/scripts/vote.ts b/contracts/scripts/vote.ts index 4ba315f55..881307cb3 100644 --- a/contracts/scripts/vote.ts +++ b/contracts/scripts/vote.ts @@ -1,7 +1,7 @@ import fs from 'fs' import { ethers } from 'hardhat' import { BigNumber } from 'ethers' -import { PrivKey, Keypair } from 'maci-domainobjs' +import { PrivKey, Keypair } from '@clrfund/maci-utils' import { createMessage } from '../utils/maci' diff --git a/contracts/tasks/cancelRound.ts b/contracts/tasks/cancelRound.ts index 0a559379c..f32aeabbe 100644 --- a/contracts/tasks/cancelRound.ts +++ b/contracts/tasks/cancelRound.ts @@ -2,7 +2,7 @@ import { task } from 'hardhat/config' task('cancel-round', 'Cancel the current round') .addParam('factory', 'The funding round factory contract address') - .setAction(async ({ factory }, { network, ethers }) => { + .setAction(async ({ factory }, { ethers }) => { const [deployer] = await ethers.getSigners() console.log('deployer', deployer.address) const fundingRoundFactory = await ethers.getContractAt( diff --git a/contracts/tests/data/claimAmounts.json b/contracts/tests/data/claimAmounts.json deleted file mode 100644 index 0f7be7fe4..000000000 --- a/contracts/tests/data/claimAmounts.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "amount": [ - "0", - "0", - "0", - "54120339620072771393409", - "56136526890735364560177", - "19824850484686311089268", - "38304350220898377711212", - "34042000587802906024715", - "54889173477280134468477", - "30143448597290798082118", - "25304872787215182420717", - "16084545747445006974505", - "17113857719619988967588", - "17581377967361663140938", - "22956843639019783056745", - "19958712415971970182784", - "14652928673171125702925", - "9393234466662078438944", - "2400198231942638112810", - "1691957185338753183209", - "2628928272126477673332", - "1863119668598695788160", - "1182733346759972058966", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ] -} diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index 459c36c7d..caf27f4bf 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -3,7 +3,7 @@ import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { Contract } from 'ethers' import { genRandomSalt } from 'maci-crypto' -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' import { ZERO_ADDRESS, UNIT } from '../utils/constants' import { getGasUsage, getEventArg } from '../utils/contracts' diff --git a/contracts/tests/factory.ts b/contracts/tests/factory.ts index c6cea4e07..c8a84a0ba 100644 --- a/contracts/tests/factory.ts +++ b/contracts/tests/factory.ts @@ -3,7 +3,7 @@ import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { Contract } from 'ethers' import { genRandomSalt } from 'maci-crypto' -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' import { ZERO_ADDRESS, UNIT } from '../utils/constants' import { getGasUsage, getEventArg } from '../utils/contracts' diff --git a/contracts/tests/maciFactory.ts b/contracts/tests/maciFactory.ts index 1e8c704a9..9e30a6c47 100644 --- a/contracts/tests/maciFactory.ts +++ b/contracts/tests/maciFactory.ts @@ -3,7 +3,7 @@ import { Contract } from 'ethers' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { deployMockContract } from '@ethereum-waffle/mock-contract' -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' import { getEventArg, getGasUsage } from '../utils/contracts' import { deployMaciFactory } from '../utils/deployment' diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index cb922080f..40c3c7d92 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -2,12 +2,17 @@ import { ethers, waffle, artifacts } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { deployMockContract } from '@ethereum-waffle/mock-contract' -import { Contract } from 'ethers' +import { Contract, BigNumber } from 'ethers' import { defaultAbiCoder } from '@ethersproject/abi' import { genRandomSalt } from 'maci-crypto' -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' -import { ZERO_ADDRESS, UNIT, VOICE_CREDIT_FACTOR } from '../utils/constants' +import { + ZERO_ADDRESS, + UNIT, + VOICE_CREDIT_FACTOR, + ALPHA_PRECISION, +} from '../utils/constants' import { getEventArg, getGasUsage } from '../utils/contracts' import { deployMaciFactory } from '../utils/deployment' import { @@ -17,15 +22,37 @@ import { getRecipientClaimData, getRecipientTallyResultsBatch, } from '../utils/maci' +import { sha256 } from 'ethers/lib/utils' use(solidity) // ethStaker test vectors for Quadratic Funding with alpha import smallTallyTestData from './data/testTallySmall.json' -import claimAmounts from './data/claimAmounts.json' -const budget = ethers.utils.parseEther('440274') -const expectedTotalVotes = '8202951014814' -const expectedAlpha = '4583670112189981' +const totalSpent = BigNumber.from(smallTallyTestData.totalVoiceCredits.spent) +const budget = BigNumber.from(totalSpent).mul(VOICE_CREDIT_FACTOR).mul(2) +const totalQuadraticVotes = smallTallyTestData.results.tally.reduce( + (total, tally) => { + return BigNumber.from(tally).pow(2).add(total) + }, + BigNumber.from(0) +) +const matchingPoolSize = budget.sub(totalSpent.mul(VOICE_CREDIT_FACTOR)) + +const expectedAlpha = matchingPoolSize + .mul(ALPHA_PRECISION) + .div(totalQuadraticVotes.sub(totalSpent)) + .div(VOICE_CREDIT_FACTOR) + +function calcAllocationAmount(tally: string, voiceCredit: string): BigNumber { + const quadratic = expectedAlpha + .mul(VOICE_CREDIT_FACTOR) + .mul(BigNumber.from(tally).pow(2)) + const linear = ALPHA_PRECISION.sub(expectedAlpha).mul( + VOICE_CREDIT_FACTOR.mul(voiceCredit) + ) + const allocation = quadratic.add(linear) + return allocation.div(ALPHA_PRECISION) +} describe('Funding Round', () => { const provider = waffle.provider @@ -347,6 +374,25 @@ describe('Funding Round', () => { ) }) + it('use a seed to generate new key and submit change change message', async () => { + const signature = await contributor.signMessage('hello world') + const hash = sha256(signature) + const newUserKeypair = Keypair.createFromSeed(hash) + const [message, encPubKey] = createMessage( + userStateIndex, + userKeypair, + newUserKeypair, + coordinatorPubKey, + null, + null, + nonce + ) + await maci.publishMessage( + message.asContractParam(), + encPubKey.asContractParam() + ) + }) + it('submits an invalid vote', async () => { const newUserKeypair = new Keypair() const [message1, encPubKey1] = createMessage( @@ -830,14 +876,17 @@ describe('Funding Round', () => { }) describe('claiming funds', () => { - const totalVotes = expectedTotalVotes + const totalVotes = totalQuadraticVotes const recipientIndex = 3 const { spent: totalSpent, salt: totalSpentSalt } = smallTallyTestData.totalVoiceCredits const contributions = smallTallyTestData.totalVoiceCreditsPerVoteOption.tally[recipientIndex] - const expectedAllocatedAmount = claimAmounts.amount[recipientIndex] + const expectedAllocatedAmount = calcAllocationAmount( + smallTallyTestData.results.tally[recipientIndex], + smallTallyTestData.totalVoiceCreditsPerVoteOption.tally[recipientIndex] + ).toString() let fundingRoundAsRecipient: Contract let fundingRoundAsContributor: Contract @@ -914,6 +963,7 @@ describe('Funding Round', () => { await expect(fundingRoundAsContributor.claimFunds(...claimData)) .to.emit(fundingRound, 'FundsClaimed') .withArgs(recipientIndex, recipient.address, expectedAllocatedAmount) + expect(await token.balanceOf(recipient.address)).to.equal( expectedAllocatedAmount ) @@ -1120,7 +1170,7 @@ describe('Funding Round', () => { const totalSquares = await fundingRound.totalVotesSquares() expect(totalSquares.toString()).to.eq( - expectedTotalVotes, + totalQuadraticVotes, 'sum of squares mismatch' ) }) @@ -1218,7 +1268,10 @@ describe('Funding Round', () => { tallyResult, spents[i] ) - const expectedClaimAmount = claimAmounts.amount[i] + const expectedClaimAmount = calcAllocationAmount( + tallyResult, + spents[i] + ) expect(amount.toString()).to.eq(expectedClaimAmount, 'bad amount') const claimData = getRecipientClaimData( diff --git a/contracts/utils/constants.ts b/contracts/utils/constants.ts index 8cb6759bc..0dd5d8bf5 100644 --- a/contracts/utils/constants.ts +++ b/contracts/utils/constants.ts @@ -3,6 +3,7 @@ import { BigNumber } from 'ethers' export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' export const UNIT = BigNumber.from(10).pow(BigNumber.from(18)) export const VOICE_CREDIT_FACTOR = BigNumber.from(10).pow(4 + 18 - 9) +export const ALPHA_PRECISION = BigNumber.from(10).pow(18) export enum RecipientState { Registered = 'Registered', diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index b0116e0c7..eae858e70 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -1,8 +1,12 @@ import { Contract, BigNumber, ContractReceipt } from 'ethers' -import { genRandomSalt, IncrementalQuinTree, hash5 } from 'maci-crypto' -import { Keypair, PubKey, Command, Message } from 'maci-domainobjs' - -const LEAVES_PER_NODE = 5 +import { + bnSqrt, + createMessage, + getRecipientClaimData, + IncrementalQuinTree, + hash5, + LEAVES_PER_NODE, +} from '@clrfund/maci-utils' export class MaciParameters { stateTreeDepth = 32 @@ -62,52 +66,6 @@ export class MaciParameters { } } -export function bnSqrt(a: BigNumber): BigNumber { - // Take square root from a big number - // https://stackoverflow.com/a/52468569/1868395 - if (a.isZero()) { - return a - } - let x - let x1 = a.div(2) - do { - x = x1 - x1 = x.add(a.div(x)).div(2) - } while (!x.eq(x1)) - return x -} - -export function createMessage( - userStateIndex: number, - userKeypair: Keypair, - newUserKeypair: Keypair | null, - coordinatorPubKey: PubKey, - voteOptionIndex: number | null, - voiceCredits: BigNumber | null, - nonce: number, - salt?: BigInt -): [Message, PubKey] { - const encKeypair = new Keypair() - if (!salt) { - salt = genRandomSalt() - } - const quadraticVoteWeight = voiceCredits ? bnSqrt(voiceCredits) : 0 - const command = new Command( - BigInt(userStateIndex), - newUserKeypair ? newUserKeypair.pubKey : userKeypair.pubKey, - BigInt(voteOptionIndex || 0), - BigInt(quadraticVoteWeight), - BigInt(nonce), - BigInt(salt) - ) - const signature = command.sign(userKeypair.privKey) - const message = command.encrypt( - signature, - Keypair.genEcdhSharedKey(encKeypair.privKey, coordinatorPubKey) - ) - return [message, encKeypair.pubKey] -} - export function getRecipientTallyResult( recipientIndex: number, recipientTreeDepth: number, @@ -136,33 +94,6 @@ export function getRecipientTallyResult( ] } -export function getRecipientClaimData( - recipientIndex: number, - recipientTreeDepth: number, - tally: any -): any[] { - // Create proof for total amount of spent voice credits - const spent = tally.totalVoiceCreditsPerVoteOption.tally[recipientIndex] - const spentSalt = tally.totalVoiceCreditsPerVoteOption.salt - const spentTree = new IncrementalQuinTree( - recipientTreeDepth, - BigInt(0), - LEAVES_PER_NODE, - hash5 - ) - for (const leaf of tally.totalVoiceCreditsPerVoteOption.tally) { - spentTree.insert(leaf) - } - const spentProof = spentTree.genMerklePath(recipientIndex) - - return [ - recipientIndex, - spent, - spentProof.pathElements.map((x) => x.map((y) => y.toString())), - spentSalt, - ] -} - export function getRecipientTallyResultsBatch( recipientStartIndex: number, recipientTreeDepth: number, @@ -224,3 +155,5 @@ export async function addTallyResultsBatch( } return totalGasUsed } + +export { createMessage, getRecipientClaimData, bnSqrt } diff --git a/docs/admin.md b/docs/admin.md index cb34541ae..176c504ac 100644 --- a/docs/admin.md +++ b/docs/admin.md @@ -272,15 +272,6 @@ npx graph auth --product hosted-service npx graph deploy --product hosted-service /clrfund ``` -## GUN -The clrfund web app stores data in the gundb. To ensure the service is available, start a gundb peer using docker like this: - -``` -docker run -p 8765:8765 gundb/gun -``` - -See https://github.com/amark/gun for more details about GUN - ## User interface User interface can be configured using environment variables. See [.env file example](../vue-app/.env.example) for details. diff --git a/docs/passkey.mmd b/docs/passkey.mmd new file mode 100644 index 000000000..8353be424 --- /dev/null +++ b/docs/passkey.mmd @@ -0,0 +1,36 @@ +%% To render this diagram, paste the code into the live editor https://mermaid-js.github.io/mermaid-live-editor/ or use Mermaid CLI + +sequenceDiagram + participant CLRFundApp + participant Browser + participant Subgraph + participant Authencator + + alt Create passkey + Note over CLRFundApp, Authencator: Create passkey + CLRFundApp ->> Subgraph: check for past contributions + Subgraph ->> CLRFundApp: No + CLRFundApp ->> Browser: check for uncommitted cart in the local storage + Browser ->> CLRFundApp: No + Note over CLRFundApp: Create a new passkey only if no past contributions or
uncommitted cart, otherwise get existing passkey + CLRFundApp ->> Browser: create passkey, call navigator.credentials.create(walletAddress) + Browser ->> Authencator: create passkey + Authencator ->> Browser: returns the public key of the new passkey + Browser ->> CLRFundApp: public key + Note over CLRFundApp: encrypt the uncommitted cart using the
sha256 hash of the public key + CLRFundApp ->> Browser: store uncommitted cart + Note over CLRFundApp: encrypt the committed cart using the MACI key created
with the sha256 hash of the public key as a seed + CLRFundApp ->> Subgraph: store committed cart through on-chain transaction + + else + Note over CLRFundApp, Authencator: Get passkey signature + CLRFundApp ->> Browser: get signature, call navigator.credentials.get(random32Bytes) + Browser ->> Authencator: get signature + Authencator ->> Browser: signature + Browser ->> CLRFundApp: signature + Note over CLRFundApp: recover 2 public keys from the signature + CLRFundApp ->> Subgraph: get encrypted committed cart + Note over CLRFundApp: create MACI key using the public keys,
the key that can decrypt the carts is the correct key + CLRFundApp ->> Browser: get uncommitted carts + Note over CLRFundApp: use the sha256 hash of the public keys,
to decrypt the uncommitted cart,
the key that can decrypt the carts is the correct key + end diff --git a/docs/testing.md b/docs/testing.md new file mode 100644 index 000000000..ac76cc8da --- /dev/null +++ b/docs/testing.md @@ -0,0 +1,30 @@ +# How to help test the CLR.fund app + +## What you'll need +1. Arbitrum Goerlie ETH + - Get Goerlie ETH from [Unitap](https://unitap.app/gas-tap) + - Use the [bridge](https://bridge.arbitrum.io/?l2ChainId=421613) to convert to Arbitrum Goerli ETH + +2. Test DAI tokens + + The test DAI tokens can be minted from the [etherscan contract page](https://goerli.arbiscan.io//address/0x65bc8dd04808d99cf8aa6749f128d55c2051edde#writeContract) with the follow inputs: + + - usr (address): Your wallet address + - wad (uint256): How many DAI tokens to mint, e.g. 20000000000000000000 is 20 DAI + + +## How to test +1. Verify with BrightID + - Goto https://clrfund-testnet.netlify.app/#/verify to get verified + +2. Contribute to projects + - Goto https://clrfund-testnet.netlify.app/#/projects to contribute to projects + +3. Reallocate contributions + - Goto https://clrfund-testnet.netlify.app/#/projects to change your contribution allocations + + +## Bug report +Report any issues in the `support` channel of the [CLR.fund discord](https://discord.gg/ZnsYPV6dCv) + + diff --git a/maci-utils/.eslintrc.js b/maci-utils/.eslintrc.js new file mode 100644 index 000000000..2d2f74958 --- /dev/null +++ b/maci-utils/.eslintrc.js @@ -0,0 +1,20 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + ], + env: { + node: true, + }, + rules: { + 'prefer-const': 'error', + '@typescript-eslint/no-explicit-any': 'off', + 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + }, +} diff --git a/maci-utils/.gitignore b/maci-utils/.gitignore new file mode 100644 index 000000000..e3fbd9833 --- /dev/null +++ b/maci-utils/.gitignore @@ -0,0 +1,2 @@ +build +node_modules diff --git a/maci-utils/README.md b/maci-utils/README.md new file mode 100644 index 000000000..86a2f4b0f --- /dev/null +++ b/maci-utils/README.md @@ -0,0 +1 @@ +# clr.fund utility functions that interact with MACI diff --git a/maci-utils/package.json b/maci-utils/package.json new file mode 100644 index 000000000..9824bc229 --- /dev/null +++ b/maci-utils/package.json @@ -0,0 +1,23 @@ +{ + "name": "@clrfund/maci-utils", + "version": "0.0.1", + "description": "Utility functions to interact with the MACI library", + "main": "src/maci", + "scripts": { + "build": "tsc", + "lint": "eslint 'src/**/*.ts'", + "clean": "rm -rf build" + }, + "keywords": [ + "MACI" + ], + "license": "GPL-3.0", + "dependencies": { + "maci-crypto": "npm:@clrfund/maci-crypto@0.10.2", + "maci-domainobjs": "npm:@clrfund/maci-domainobjs@0.10.2" + }, + "devDependencies": { + "eslint": "^8.31.0", + "typescript": "4.1.2" + } +} diff --git a/maci-utils/src/maci.ts b/maci-utils/src/maci.ts new file mode 100644 index 000000000..f3b7c25c3 --- /dev/null +++ b/maci-utils/src/maci.ts @@ -0,0 +1,188 @@ +import { BigNumber, utils } from 'ethers' +import { genRandomSalt, IncrementalQuinTree, hash5 } from 'maci-crypto' +import { + Keypair as MaciKeypair, + PubKey, + PrivKey, + Command, + Message, +} from 'maci-domainobjs' + +const SNARK_FIELD_SIZE = BigInt( + '21888242871839275222246405745257275088548364400416034343698204186575808495617' +) + +const LEAVES_PER_NODE = 5 + +/* eslint-disable-next-line @typescript-eslint/ban-types */ +declare type PathElements = BigInt[][] +declare type Indices = number[] +/* eslint-disable-next-line @typescript-eslint/ban-types */ +declare type Leaf = BigInt + +interface MerkleProof { + pathElements: PathElements + indices: Indices + depth: number + /* eslint-disable-next-line @typescript-eslint/ban-types */ + root: BigInt + leaf: Leaf +} + +export function bnSqrt(a: BigNumber): BigNumber { + // Take square root from a big number + // https://stackoverflow.com/a/52468569/1868395 + if (a.isZero()) { + return a + } + let x + let x1 = a.div(2) + do { + x = x1 + x1 = x.add(a.div(x)).div(2) + } while (!x.eq(x1)) + return x +} + +/** + * Returns a BabyJub-compatible value. This function is modified from + * the MACI's genRandomBabyJubValue(). Instead of returning random value + * for the private key, it derives the private key from the users', + * signature hash + * @param hash - user's signature hash + */ +function genPrivKey(hash: string): PrivKey { + // Prevent modulo bias + //const lim = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000') + //const min = (lim - SNARK_FIELD_SIZE) % SNARK_FIELD_SIZE + const min = BigNumber.from( + '6350874878119819312338956282401532410528162663560392320966563075034087161851' + ) + + if (!utils.isBytesLike(hash)) { + throw new Error(`Hash must be a hex string: ${hash}`) + } + + let hashBN = BigNumber.from(hash) + // don't think we'll enter the for loop below, but, just in case + for (let counter = 1; min.gte(hashBN); counter++) { + const data = utils.concat([hashBN.toHexString(), utils.arrayify(counter)]) + hashBN = BigNumber.from(utils.keccak256(data)) + } + + const rawPrivKey = BigInt(hashBN.toString()) % SNARK_FIELD_SIZE + if (rawPrivKey >= SNARK_FIELD_SIZE) { + throw new Error( + `privKey ${rawPrivKey} must be less than SNARK_FIELD_SIZE ${SNARK_FIELD_SIZE}` + ) + } + + return new PrivKey(rawPrivKey) +} + +export class Keypair extends MaciKeypair { + /** + * generate a key pair from a seed + * @param hash The sha256 signature hash + * @returns key pair + */ + static createFromSeed(seed: string): Keypair { + const sanitizedSeed = seed.startsWith('0x') ? seed : '0x' + seed + const privKey = genPrivKey(sanitizedSeed) + return new Keypair(privKey) + } +} + +export function createMessage( + userStateIndex: number, + userKeypair: Keypair, + newUserKeypair: Keypair | null, + coordinatorPubKey: PubKey, + voteOptionIndex: number | null, + voiceCredits: BigNumber | null, + nonce: number, + /* eslint-disable-next-line @typescript-eslint/ban-types */ + salt?: BigInt +): [Message, PubKey] { + const encKeypair = newUserKeypair ? newUserKeypair : userKeypair + if (!salt) { + salt = genRandomSalt() + } + + const quadraticVoteWeight = voiceCredits + ? bnSqrt(voiceCredits) + : BigNumber.from(0) + + const command = new Command( + BigInt(userStateIndex), + encKeypair.pubKey, + BigInt(voteOptionIndex || 0), + BigInt(quadraticVoteWeight.toString()), + BigInt(nonce), + salt + ) + const signature = command.sign(userKeypair.privKey) + const message = command.encrypt( + signature, + Keypair.genEcdhSharedKey(encKeypair.privKey, coordinatorPubKey) + ) + return [message, encKeypair.pubKey] +} + +export interface Tally { + provider: string + maci: string + results: { + commitment: string + tally: string[] + salt: string + } + totalVoiceCredits: { + spent: string + commitment: string + salt: string + } + totalVoiceCreditsPerVoteOption: { + commitment: string + tally: string[] + salt: string + } +} + +export function getRecipientClaimData( + recipientIndex: number, + recipientTreeDepth: number, + tally: Tally +): any[] { + // Create proof for total amount of spent voice credits + const spent = tally.totalVoiceCreditsPerVoteOption.tally[recipientIndex] + const spentSalt = tally.totalVoiceCreditsPerVoteOption.salt + const spentTree = new IncrementalQuinTree( + recipientTreeDepth, + BigInt(0), + LEAVES_PER_NODE, + hash5 + ) + for (const leaf of tally.totalVoiceCreditsPerVoteOption.tally) { + spentTree.insert(BigInt(leaf)) + } + const spentProof: MerkleProof = spentTree.genMerklePath(recipientIndex) + + return [ + recipientIndex, + spent, + spentProof.pathElements.map((x) => x.map((y) => y.toString())), + spentSalt, + ] +} + +export { + PrivKey, + PubKey, + Command, + Message, + IncrementalQuinTree, + hash5, + genRandomSalt, + LEAVES_PER_NODE, +} diff --git a/maci-utils/tsconfig.json b/maci-utils/tsconfig.json new file mode 100644 index 000000000..a635c41f3 --- /dev/null +++ b/maci-utils/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "experimentalDecorators": true, + "alwaysStrict": true, + "noImplicitAny": false, + "forceConsistentCasingInFileNames": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "strict": true, + "outDir": "./build", + "target": "es2018", + "esModuleInterop": true, + "module": "commonjs", + "declaration": true + }, + "exclude": ["node_modules/**"], + "include": ["./src"] +} diff --git a/package.json b/package.json index 2f9c5678f..52c1349d7 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "workspaces": { "packages": [ "contracts", + "maci-utils", "vue-app", "subgraph" ], @@ -27,9 +28,7 @@ "start:registry": "yarn deploy:local-registry && yarn start:subgraph && yarn start:web", "start:node": "yarn workspace @clrfund/contracts run node", "start:web": "yarn workspace @clrfund/vue-app run serve", - "start:gun": "yarn workspace @clrfund/vue-app run gun", "start:subgraph": "yarn workspace @clrfund/subgraph run prepare:hardhat && yarn build:subgraph && yarn deploy:local-subgraph", - "codegen": "graphql-codegen --config codegen.yml", "test": "yarn workspace @clrfund/contracts run test && yarn workspace @clrfund/vue-app run test", "test:contracts": "yarn workspace @clrfund/contracts run test", "test:e2e": "yarn workspace @clrfund/contracts run e2e", diff --git a/subgraph/generated/FundingRoundFactory/FundingRound.ts b/subgraph/generated/FundingRoundFactory/FundingRound.ts index 7221e8d8b..6c3bcd6cb 100644 --- a/subgraph/generated/FundingRoundFactory/FundingRound.ts +++ b/subgraph/generated/FundingRoundFactory/FundingRound.ts @@ -526,7 +526,9 @@ export class ContributeCall__Inputs { } get pubKey(): ContributeCallPubKeyStruct { - return this._call.inputValues[0].value.toTuple() as ContributeCallPubKeyStruct; + return changetype( + this._call.inputValues[0].value.toTuple() + ); } get amount(): BigInt { diff --git a/subgraph/generated/FundingRoundFactory/FundingRoundFactory.ts b/subgraph/generated/FundingRoundFactory/FundingRoundFactory.ts index 45ce0c894..f2c5e52e3 100644 --- a/subgraph/generated/FundingRoundFactory/FundingRoundFactory.ts +++ b/subgraph/generated/FundingRoundFactory/FundingRoundFactory.ts @@ -155,6 +155,14 @@ export class FundingRoundFactory__coordinatorPubKeyResult { map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); return map; } + + getX(): BigInt { + return this.value0; + } + + getY(): BigInt { + return this.value1; + } } export class FundingRoundFactory extends ethereum.SmartContract { @@ -556,7 +564,9 @@ export class SetCoordinatorCall__Inputs { } get _coordinatorPubKey(): SetCoordinatorCall_coordinatorPubKeyStruct { - return this._call.inputValues[1].value.toTuple() as SetCoordinatorCall_coordinatorPubKeyStruct; + return changetype( + this._call.inputValues[1].value.toTuple() + ); } } diff --git a/subgraph/generated/FundingRoundFactory/MACIFactory.ts b/subgraph/generated/FundingRoundFactory/MACIFactory.ts index 97ba82a9a..a806996ad 100644 --- a/subgraph/generated/FundingRoundFactory/MACIFactory.ts +++ b/subgraph/generated/FundingRoundFactory/MACIFactory.ts @@ -85,6 +85,14 @@ export class MACIFactory__batchSizesResult { ); return map; } + + getTallyBatchSize(): i32 { + return this.value0; + } + + getMessageBatchSize(): i32 { + return this.value1; + } } export class MACIFactory__deployMaciInput_coordinatorPubKeyStruct extends ethereum.Tuple { @@ -115,6 +123,18 @@ export class MACIFactory__maxValuesResult { map.set("value2", ethereum.Value.fromUnsignedBigInt(this.value2)); return map; } + + getMaxUsers(): BigInt { + return this.value0; + } + + getMaxMessages(): BigInt { + return this.value1; + } + + getMaxVoteOptions(): BigInt { + return this.value2; + } } export class MACIFactory__treeDepthsResult { @@ -144,6 +164,18 @@ export class MACIFactory__treeDepthsResult { ); return map; } + + getStateTreeDepth(): i32 { + return this.value0; + } + + getMessageTreeDepth(): i32 { + return this.value1; + } + + getVoteOptionTreeDepth(): i32 { + return this.value2; + } } export class MACIFactory extends ethereum.SmartContract { @@ -464,7 +496,9 @@ export class DeployMaciCall__Inputs { } get _coordinatorPubKey(): DeployMaciCall_coordinatorPubKeyStruct { - return this._call.inputValues[3].value.toTuple() as DeployMaciCall_coordinatorPubKeyStruct; + return changetype( + this._call.inputValues[3].value.toTuple() + ); } } diff --git a/subgraph/generated/schema.ts b/subgraph/generated/schema.ts index e4975c0ad..405c8b507 100644 --- a/subgraph/generated/schema.ts +++ b/subgraph/generated/schema.ts @@ -6,7 +6,6 @@ import { Value, ValueKind, store, - Address, Bytes, BigInt, BigDecimal @@ -20,22 +19,25 @@ export class FundingRoundFactory extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save FundingRoundFactory entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save FundingRoundFactory entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("FundingRoundFactory", id.toString(), this); + assert(id != null, "Cannot save FundingRoundFactory entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type FundingRoundFactory must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("FundingRoundFactory", id.toString(), this); + } } static load(id: string): FundingRoundFactory | null { - return store.get("FundingRoundFactory", id) as FundingRoundFactory | null; + return changetype( + store.get("FundingRoundFactory", id) + ); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -44,7 +46,7 @@ export class FundingRoundFactory extends Entity { get owner(): Bytes | null { let value = this.get("owner"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -52,16 +54,16 @@ export class FundingRoundFactory extends Entity { } set owner(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("owner"); } else { - this.set("owner", Value.fromBytes(value as Bytes)); + this.set("owner", Value.fromBytes(value)); } } get coordinator(): Bytes | null { let value = this.get("coordinator"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -69,16 +71,16 @@ export class FundingRoundFactory extends Entity { } set coordinator(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("coordinator"); } else { - this.set("coordinator", Value.fromBytes(value as Bytes)); + this.set("coordinator", Value.fromBytes(value)); } } get nativeToken(): Bytes | null { let value = this.get("nativeToken"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -86,16 +88,16 @@ export class FundingRoundFactory extends Entity { } set nativeToken(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("nativeToken"); } else { - this.set("nativeToken", Value.fromBytes(value as Bytes)); + this.set("nativeToken", Value.fromBytes(value)); } } get nativeTokenInfo(): string | null { let value = this.get("nativeTokenInfo"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -103,16 +105,16 @@ export class FundingRoundFactory extends Entity { } set nativeTokenInfo(value: string | null) { - if (value === null) { + if (!value) { this.unset("nativeTokenInfo"); } else { - this.set("nativeTokenInfo", Value.fromString(value as string)); + this.set("nativeTokenInfo", Value.fromString(value)); } } get contributorRegistry(): string | null { let value = this.get("contributorRegistry"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -120,16 +122,16 @@ export class FundingRoundFactory extends Entity { } set contributorRegistry(value: string | null) { - if (value === null) { + if (!value) { this.unset("contributorRegistry"); } else { - this.set("contributorRegistry", Value.fromString(value as string)); + this.set("contributorRegistry", Value.fromString(value)); } } get contributorRegistryAddress(): Bytes | null { let value = this.get("contributorRegistryAddress"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -137,16 +139,16 @@ export class FundingRoundFactory extends Entity { } set contributorRegistryAddress(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("contributorRegistryAddress"); } else { - this.set("contributorRegistryAddress", Value.fromBytes(value as Bytes)); + this.set("contributorRegistryAddress", Value.fromBytes(value)); } } get recipientRegistry(): string | null { let value = this.get("recipientRegistry"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -154,16 +156,16 @@ export class FundingRoundFactory extends Entity { } set recipientRegistry(value: string | null) { - if (value === null) { + if (!value) { this.unset("recipientRegistry"); } else { - this.set("recipientRegistry", Value.fromString(value as string)); + this.set("recipientRegistry", Value.fromString(value)); } } get recipientRegistryAddress(): Bytes | null { let value = this.get("recipientRegistryAddress"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -171,16 +173,16 @@ export class FundingRoundFactory extends Entity { } set recipientRegistryAddress(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("recipientRegistryAddress"); } else { - this.set("recipientRegistryAddress", Value.fromBytes(value as Bytes)); + this.set("recipientRegistryAddress", Value.fromBytes(value)); } } get currentRound(): string | null { let value = this.get("currentRound"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -188,16 +190,16 @@ export class FundingRoundFactory extends Entity { } set currentRound(value: string | null) { - if (value === null) { + if (!value) { this.unset("currentRound"); } else { - this.set("currentRound", Value.fromString(value as string)); + this.set("currentRound", Value.fromString(value)); } } get maciFactory(): Bytes | null { let value = this.get("maciFactory"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -205,16 +207,16 @@ export class FundingRoundFactory extends Entity { } set maciFactory(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("maciFactory"); } else { - this.set("maciFactory", Value.fromBytes(value as Bytes)); + this.set("maciFactory", Value.fromBytes(value)); } } get coordinatorPubKey(): string | null { let value = this.get("coordinatorPubKey"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -222,16 +224,16 @@ export class FundingRoundFactory extends Entity { } set coordinatorPubKey(value: string | null) { - if (value === null) { + if (!value) { this.unset("coordinatorPubKey"); } else { - this.set("coordinatorPubKey", Value.fromString(value as string)); + this.set("coordinatorPubKey", Value.fromString(value)); } } get stateTreeDepth(): BigInt | null { let value = this.get("stateTreeDepth"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -239,16 +241,16 @@ export class FundingRoundFactory extends Entity { } set stateTreeDepth(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("stateTreeDepth"); } else { - this.set("stateTreeDepth", Value.fromBigInt(value as BigInt)); + this.set("stateTreeDepth", Value.fromBigInt(value)); } } get messageTreeDepth(): BigInt | null { let value = this.get("messageTreeDepth"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -256,16 +258,16 @@ export class FundingRoundFactory extends Entity { } set messageTreeDepth(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("messageTreeDepth"); } else { - this.set("messageTreeDepth", Value.fromBigInt(value as BigInt)); + this.set("messageTreeDepth", Value.fromBigInt(value)); } } get voteOptionTreeDepth(): BigInt | null { let value = this.get("voteOptionTreeDepth"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -273,16 +275,16 @@ export class FundingRoundFactory extends Entity { } set voteOptionTreeDepth(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("voteOptionTreeDepth"); } else { - this.set("voteOptionTreeDepth", Value.fromBigInt(value as BigInt)); + this.set("voteOptionTreeDepth", Value.fromBigInt(value)); } } get tallyBatchSize(): BigInt | null { let value = this.get("tallyBatchSize"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -290,16 +292,16 @@ export class FundingRoundFactory extends Entity { } set tallyBatchSize(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("tallyBatchSize"); } else { - this.set("tallyBatchSize", Value.fromBigInt(value as BigInt)); + this.set("tallyBatchSize", Value.fromBigInt(value)); } } get messageBatchSize(): BigInt | null { let value = this.get("messageBatchSize"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -307,16 +309,16 @@ export class FundingRoundFactory extends Entity { } set messageBatchSize(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("messageBatchSize"); } else { - this.set("messageBatchSize", Value.fromBigInt(value as BigInt)); + this.set("messageBatchSize", Value.fromBigInt(value)); } } get batchUstVerifier(): Bytes | null { let value = this.get("batchUstVerifier"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -324,16 +326,16 @@ export class FundingRoundFactory extends Entity { } set batchUstVerifier(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("batchUstVerifier"); } else { - this.set("batchUstVerifier", Value.fromBytes(value as Bytes)); + this.set("batchUstVerifier", Value.fromBytes(value)); } } get qvtVerifier(): Bytes | null { let value = this.get("qvtVerifier"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -341,16 +343,16 @@ export class FundingRoundFactory extends Entity { } set qvtVerifier(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("qvtVerifier"); } else { - this.set("qvtVerifier", Value.fromBytes(value as Bytes)); + this.set("qvtVerifier", Value.fromBytes(value)); } } get signUpDuration(): BigInt | null { let value = this.get("signUpDuration"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -358,16 +360,16 @@ export class FundingRoundFactory extends Entity { } set signUpDuration(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("signUpDuration"); } else { - this.set("signUpDuration", Value.fromBigInt(value as BigInt)); + this.set("signUpDuration", Value.fromBigInt(value)); } } get votingDuration(): BigInt | null { let value = this.get("votingDuration"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -375,16 +377,16 @@ export class FundingRoundFactory extends Entity { } set votingDuration(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("votingDuration"); } else { - this.set("votingDuration", Value.fromBigInt(value as BigInt)); + this.set("votingDuration", Value.fromBigInt(value)); } } get maxUsers(): BigInt | null { let value = this.get("maxUsers"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -392,16 +394,16 @@ export class FundingRoundFactory extends Entity { } set maxUsers(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("maxUsers"); } else { - this.set("maxUsers", Value.fromBigInt(value as BigInt)); + this.set("maxUsers", Value.fromBigInt(value)); } } get maxMessages(): BigInt | null { let value = this.get("maxMessages"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -409,16 +411,16 @@ export class FundingRoundFactory extends Entity { } set maxMessages(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("maxMessages"); } else { - this.set("maxMessages", Value.fromBigInt(value as BigInt)); + this.set("maxMessages", Value.fromBigInt(value)); } } get maxVoteOptions(): BigInt | null { let value = this.get("maxVoteOptions"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -426,16 +428,16 @@ export class FundingRoundFactory extends Entity { } set maxVoteOptions(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("maxVoteOptions"); } else { - this.set("maxVoteOptions", Value.fromBigInt(value as BigInt)); + this.set("maxVoteOptions", Value.fromBigInt(value)); } } get fundingRounds(): Array | null { let value = this.get("fundingRounds"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -443,16 +445,16 @@ export class FundingRoundFactory extends Entity { } set fundingRounds(value: Array | null) { - if (value === null) { + if (!value) { this.unset("fundingRounds"); } else { - this.set("fundingRounds", Value.fromStringArray(value as Array)); + this.set("fundingRounds", Value.fromStringArray(>value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -460,16 +462,16 @@ export class FundingRoundFactory extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } get lastUpdatedAt(): string | null { let value = this.get("lastUpdatedAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -477,10 +479,10 @@ export class FundingRoundFactory extends Entity { } set lastUpdatedAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("lastUpdatedAt"); } else { - this.set("lastUpdatedAt", Value.fromString(value as string)); + this.set("lastUpdatedAt", Value.fromString(value)); } } } @@ -493,22 +495,23 @@ export class Message extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save Message entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save Message entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("Message", id.toString(), this); + assert(id != null, "Cannot save Message entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type Message must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("Message", id.toString(), this); + } } static load(id: string): Message | null { - return store.get("Message", id) as Message | null; + return changetype(store.get("Message", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -517,7 +520,7 @@ export class Message extends Entity { get data(): Array | null { let value = this.get("data"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigIntArray(); @@ -525,16 +528,16 @@ export class Message extends Entity { } set data(value: Array | null) { - if (value === null) { + if (!value) { this.unset("data"); } else { - this.set("data", Value.fromBigIntArray(value as Array)); + this.set("data", Value.fromBigIntArray(>value)); } } get iv(): BigInt { let value = this.get("iv"); - return value.toBigInt(); + return value!.toBigInt(); } set iv(value: BigInt) { @@ -543,7 +546,7 @@ export class Message extends Entity { get publicKey(): string | null { let value = this.get("publicKey"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -551,16 +554,16 @@ export class Message extends Entity { } set publicKey(value: string | null) { - if (value === null) { + if (!value) { this.unset("publicKey"); } else { - this.set("publicKey", Value.fromString(value as string)); + this.set("publicKey", Value.fromString(value)); } } get fundingRound(): string | null { let value = this.get("fundingRound"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -568,16 +571,33 @@ export class Message extends Entity { } set fundingRound(value: string | null) { - if (value === null) { + if (!value) { this.unset("fundingRound"); } else { - this.set("fundingRound", Value.fromString(value as string)); + this.set("fundingRound", Value.fromString(value)); + } + } + + get submittedBy(): Bytes | null { + let value = this.get("submittedBy"); + if (!value || value.kind == ValueKind.NULL) { + return null; + } else { + return value.toBytes(); + } + } + + set submittedBy(value: Bytes | null) { + if (!value) { + this.unset("submittedBy"); + } else { + this.set("submittedBy", Value.fromBytes(value)); } } get timestamp(): string | null { let value = this.get("timestamp"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -585,12 +605,30 @@ export class Message extends Entity { } set timestamp(value: string | null) { - if (value === null) { + if (!value) { this.unset("timestamp"); } else { - this.set("timestamp", Value.fromString(value as string)); + this.set("timestamp", Value.fromString(value)); } } + + get blockNumber(): BigInt { + let value = this.get("blockNumber"); + return value!.toBigInt(); + } + + set blockNumber(value: BigInt) { + this.set("blockNumber", Value.fromBigInt(value)); + } + + get transactionIndex(): BigInt { + let value = this.get("transactionIndex"); + return value!.toBigInt(); + } + + set transactionIndex(value: BigInt) { + this.set("transactionIndex", Value.fromBigInt(value)); + } } export class PublicKey extends Entity { @@ -601,22 +639,23 @@ export class PublicKey extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save PublicKey entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save PublicKey entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("PublicKey", id.toString(), this); + assert(id != null, "Cannot save PublicKey entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type PublicKey must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("PublicKey", id.toString(), this); + } } static load(id: string): PublicKey | null { - return store.get("PublicKey", id) as PublicKey | null; + return changetype(store.get("PublicKey", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -625,7 +664,7 @@ export class PublicKey extends Entity { get fundingRound(): string | null { let value = this.get("fundingRound"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -633,16 +672,16 @@ export class PublicKey extends Entity { } set fundingRound(value: string | null) { - if (value === null) { + if (!value) { this.unset("fundingRound"); } else { - this.set("fundingRound", Value.fromString(value as string)); + this.set("fundingRound", Value.fromString(value)); } } get messages(): Array | null { let value = this.get("messages"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -650,16 +689,16 @@ export class PublicKey extends Entity { } set messages(value: Array | null) { - if (value === null) { + if (!value) { this.unset("messages"); } else { - this.set("messages", Value.fromStringArray(value as Array)); + this.set("messages", Value.fromStringArray(>value)); } } get x(): BigInt { let value = this.get("x"); - return value.toBigInt(); + return value!.toBigInt(); } set x(value: BigInt) { @@ -668,7 +707,7 @@ export class PublicKey extends Entity { get y(): BigInt { let value = this.get("y"); - return value.toBigInt(); + return value!.toBigInt(); } set y(value: BigInt) { @@ -677,7 +716,7 @@ export class PublicKey extends Entity { get stateIndex(): BigInt | null { let value = this.get("stateIndex"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -685,16 +724,16 @@ export class PublicKey extends Entity { } set stateIndex(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("stateIndex"); } else { - this.set("stateIndex", Value.fromBigInt(value as BigInt)); + this.set("stateIndex", Value.fromBigInt(value)); } } get voiceCreditBalance(): BigInt | null { let value = this.get("voiceCreditBalance"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -702,10 +741,10 @@ export class PublicKey extends Entity { } set voiceCreditBalance(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("voiceCreditBalance"); } else { - this.set("voiceCreditBalance", Value.fromBigInt(value as BigInt)); + this.set("voiceCreditBalance", Value.fromBigInt(value)); } } } @@ -718,22 +757,23 @@ export class FundingRound extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save FundingRound entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save FundingRound entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("FundingRound", id.toString(), this); + assert(id != null, "Cannot save FundingRound entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type FundingRound must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("FundingRound", id.toString(), this); + } } static load(id: string): FundingRound | null { - return store.get("FundingRound", id) as FundingRound | null; + return changetype(store.get("FundingRound", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -742,7 +782,7 @@ export class FundingRound extends Entity { get fundingRoundFactory(): string | null { let value = this.get("fundingRoundFactory"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -750,16 +790,16 @@ export class FundingRound extends Entity { } set fundingRoundFactory(value: string | null) { - if (value === null) { + if (!value) { this.unset("fundingRoundFactory"); } else { - this.set("fundingRoundFactory", Value.fromString(value as string)); + this.set("fundingRoundFactory", Value.fromString(value)); } } get maci(): Bytes | null { let value = this.get("maci"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -767,16 +807,16 @@ export class FundingRound extends Entity { } set maci(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("maci"); } else { - this.set("maci", Value.fromBytes(value as Bytes)); + this.set("maci", Value.fromBytes(value)); } } get messages(): Array | null { let value = this.get("messages"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -784,16 +824,16 @@ export class FundingRound extends Entity { } set messages(value: Array | null) { - if (value === null) { + if (!value) { this.unset("messages"); } else { - this.set("messages", Value.fromStringArray(value as Array)); + this.set("messages", Value.fromStringArray(>value)); } } get recipientRegistry(): string | null { let value = this.get("recipientRegistry"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -801,16 +841,16 @@ export class FundingRound extends Entity { } set recipientRegistry(value: string | null) { - if (value === null) { + if (!value) { this.unset("recipientRegistry"); } else { - this.set("recipientRegistry", Value.fromString(value as string)); + this.set("recipientRegistry", Value.fromString(value)); } } get recipientRegistryAddress(): Bytes | null { let value = this.get("recipientRegistryAddress"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -818,16 +858,16 @@ export class FundingRound extends Entity { } set recipientRegistryAddress(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("recipientRegistryAddress"); } else { - this.set("recipientRegistryAddress", Value.fromBytes(value as Bytes)); + this.set("recipientRegistryAddress", Value.fromBytes(value)); } } get contributorRegistry(): string | null { let value = this.get("contributorRegistry"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -835,16 +875,16 @@ export class FundingRound extends Entity { } set contributorRegistry(value: string | null) { - if (value === null) { + if (!value) { this.unset("contributorRegistry"); } else { - this.set("contributorRegistry", Value.fromString(value as string)); + this.set("contributorRegistry", Value.fromString(value)); } } get contributorRegistryAddress(): Bytes | null { let value = this.get("contributorRegistryAddress"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -852,16 +892,16 @@ export class FundingRound extends Entity { } set contributorRegistryAddress(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("contributorRegistryAddress"); } else { - this.set("contributorRegistryAddress", Value.fromBytes(value as Bytes)); + this.set("contributorRegistryAddress", Value.fromBytes(value)); } } get nativeToken(): Bytes | null { let value = this.get("nativeToken"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -869,16 +909,16 @@ export class FundingRound extends Entity { } set nativeToken(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("nativeToken"); } else { - this.set("nativeToken", Value.fromBytes(value as Bytes)); + this.set("nativeToken", Value.fromBytes(value)); } } get nativeTokenInfo(): string | null { let value = this.get("nativeTokenInfo"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -886,16 +926,16 @@ export class FundingRound extends Entity { } set nativeTokenInfo(value: string | null) { - if (value === null) { + if (!value) { this.unset("nativeTokenInfo"); } else { - this.set("nativeTokenInfo", Value.fromString(value as string)); + this.set("nativeTokenInfo", Value.fromString(value)); } } get startTime(): BigInt | null { let value = this.get("startTime"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -903,16 +943,16 @@ export class FundingRound extends Entity { } set startTime(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("startTime"); } else { - this.set("startTime", Value.fromBigInt(value as BigInt)); + this.set("startTime", Value.fromBigInt(value)); } } get signUpDeadline(): BigInt | null { let value = this.get("signUpDeadline"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -920,16 +960,16 @@ export class FundingRound extends Entity { } set signUpDeadline(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("signUpDeadline"); } else { - this.set("signUpDeadline", Value.fromBigInt(value as BigInt)); + this.set("signUpDeadline", Value.fromBigInt(value)); } } get votingDeadline(): BigInt | null { let value = this.get("votingDeadline"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -937,16 +977,16 @@ export class FundingRound extends Entity { } set votingDeadline(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("votingDeadline"); } else { - this.set("votingDeadline", Value.fromBigInt(value as BigInt)); + this.set("votingDeadline", Value.fromBigInt(value)); } } get coordinator(): Bytes | null { let value = this.get("coordinator"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -954,16 +994,16 @@ export class FundingRound extends Entity { } set coordinator(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("coordinator"); } else { - this.set("coordinator", Value.fromBytes(value as Bytes)); + this.set("coordinator", Value.fromBytes(value)); } } get voiceCreditFactor(): BigInt | null { let value = this.get("voiceCreditFactor"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -971,16 +1011,16 @@ export class FundingRound extends Entity { } set voiceCreditFactor(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("voiceCreditFactor"); } else { - this.set("voiceCreditFactor", Value.fromBigInt(value as BigInt)); + this.set("voiceCreditFactor", Value.fromBigInt(value)); } } get contributorCount(): BigInt { let value = this.get("contributorCount"); - return value.toBigInt(); + return value!.toBigInt(); } set contributorCount(value: BigInt) { @@ -989,7 +1029,7 @@ export class FundingRound extends Entity { get recipientCount(): BigInt { let value = this.get("recipientCount"); - return value.toBigInt(); + return value!.toBigInt(); } set recipientCount(value: BigInt) { @@ -998,7 +1038,7 @@ export class FundingRound extends Entity { get matchingPoolSize(): BigInt | null { let value = this.get("matchingPoolSize"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1006,16 +1046,16 @@ export class FundingRound extends Entity { } set matchingPoolSize(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("matchingPoolSize"); } else { - this.set("matchingPoolSize", Value.fromBigInt(value as BigInt)); + this.set("matchingPoolSize", Value.fromBigInt(value)); } } get totalSpent(): BigInt | null { let value = this.get("totalSpent"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1023,16 +1063,16 @@ export class FundingRound extends Entity { } set totalSpent(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("totalSpent"); } else { - this.set("totalSpent", Value.fromBigInt(value as BigInt)); + this.set("totalSpent", Value.fromBigInt(value)); } } get totalVotes(): BigInt | null { let value = this.get("totalVotes"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1040,16 +1080,16 @@ export class FundingRound extends Entity { } set totalVotes(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("totalVotes"); } else { - this.set("totalVotes", Value.fromBigInt(value as BigInt)); + this.set("totalVotes", Value.fromBigInt(value)); } } get isFinalized(): boolean { let value = this.get("isFinalized"); - return value.toBoolean(); + return value!.toBoolean(); } set isFinalized(value: boolean) { @@ -1058,7 +1098,7 @@ export class FundingRound extends Entity { get isCancelled(): boolean { let value = this.get("isCancelled"); - return value.toBoolean(); + return value!.toBoolean(); } set isCancelled(value: boolean) { @@ -1067,7 +1107,7 @@ export class FundingRound extends Entity { get tallyHash(): string | null { let value = this.get("tallyHash"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1075,16 +1115,16 @@ export class FundingRound extends Entity { } set tallyHash(value: string | null) { - if (value === null) { + if (!value) { this.unset("tallyHash"); } else { - this.set("tallyHash", Value.fromString(value as string)); + this.set("tallyHash", Value.fromString(value)); } } get recipients(): Array | null { let value = this.get("recipients"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1092,16 +1132,16 @@ export class FundingRound extends Entity { } set recipients(value: Array | null) { - if (value === null) { + if (!value) { this.unset("recipients"); } else { - this.set("recipients", Value.fromStringArray(value as Array)); + this.set("recipients", Value.fromStringArray(>value)); } } get contributors(): Array | null { let value = this.get("contributors"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1109,16 +1149,16 @@ export class FundingRound extends Entity { } set contributors(value: Array | null) { - if (value === null) { + if (!value) { this.unset("contributors"); } else { - this.set("contributors", Value.fromStringArray(value as Array)); + this.set("contributors", Value.fromStringArray(>value)); } } get contributions(): Array | null { let value = this.get("contributions"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1126,16 +1166,16 @@ export class FundingRound extends Entity { } set contributions(value: Array | null) { - if (value === null) { + if (!value) { this.unset("contributions"); } else { - this.set("contributions", Value.fromStringArray(value as Array)); + this.set("contributions", Value.fromStringArray(>value)); } } get votes(): Array | null { let value = this.get("votes"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1143,16 +1183,16 @@ export class FundingRound extends Entity { } set votes(value: Array | null) { - if (value === null) { + if (!value) { this.unset("votes"); } else { - this.set("votes", Value.fromStringArray(value as Array)); + this.set("votes", Value.fromStringArray(>value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1160,16 +1200,16 @@ export class FundingRound extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } get lastUpdatedAt(): string | null { let value = this.get("lastUpdatedAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1177,10 +1217,10 @@ export class FundingRound extends Entity { } set lastUpdatedAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("lastUpdatedAt"); } else { - this.set("lastUpdatedAt", Value.fromString(value as string)); + this.set("lastUpdatedAt", Value.fromString(value)); } } } @@ -1193,22 +1233,25 @@ export class RecipientRegistry extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save RecipientRegistry entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save RecipientRegistry entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("RecipientRegistry", id.toString(), this); + assert(id != null, "Cannot save RecipientRegistry entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type RecipientRegistry must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("RecipientRegistry", id.toString(), this); + } } static load(id: string): RecipientRegistry | null { - return store.get("RecipientRegistry", id) as RecipientRegistry | null; + return changetype( + store.get("RecipientRegistry", id) + ); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -1217,7 +1260,7 @@ export class RecipientRegistry extends Entity { get fundingRoundFactory(): string | null { let value = this.get("fundingRoundFactory"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1225,16 +1268,16 @@ export class RecipientRegistry extends Entity { } set fundingRoundFactory(value: string | null) { - if (value === null) { + if (!value) { this.unset("fundingRoundFactory"); } else { - this.set("fundingRoundFactory", Value.fromString(value as string)); + this.set("fundingRoundFactory", Value.fromString(value)); } } get baseDeposit(): BigInt | null { let value = this.get("baseDeposit"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1242,16 +1285,16 @@ export class RecipientRegistry extends Entity { } set baseDeposit(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("baseDeposit"); } else { - this.set("baseDeposit", Value.fromBigInt(value as BigInt)); + this.set("baseDeposit", Value.fromBigInt(value)); } } get challengePeriodDuration(): BigInt | null { let value = this.get("challengePeriodDuration"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1259,16 +1302,16 @@ export class RecipientRegistry extends Entity { } set challengePeriodDuration(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("challengePeriodDuration"); } else { - this.set("challengePeriodDuration", Value.fromBigInt(value as BigInt)); + this.set("challengePeriodDuration", Value.fromBigInt(value)); } } get controller(): Bytes | null { let value = this.get("controller"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -1276,16 +1319,16 @@ export class RecipientRegistry extends Entity { } set controller(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("controller"); } else { - this.set("controller", Value.fromBytes(value as Bytes)); + this.set("controller", Value.fromBytes(value)); } } get maxRecipients(): BigInt | null { let value = this.get("maxRecipients"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1293,16 +1336,16 @@ export class RecipientRegistry extends Entity { } set maxRecipients(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("maxRecipients"); } else { - this.set("maxRecipients", Value.fromBigInt(value as BigInt)); + this.set("maxRecipients", Value.fromBigInt(value)); } } get owner(): Bytes | null { let value = this.get("owner"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -1310,16 +1353,16 @@ export class RecipientRegistry extends Entity { } set owner(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("owner"); } else { - this.set("owner", Value.fromBytes(value as Bytes)); + this.set("owner", Value.fromBytes(value)); } } get recipients(): Array | null { let value = this.get("recipients"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1327,16 +1370,16 @@ export class RecipientRegistry extends Entity { } set recipients(value: Array | null) { - if (value === null) { + if (!value) { this.unset("recipients"); } else { - this.set("recipients", Value.fromStringArray(value as Array)); + this.set("recipients", Value.fromStringArray(>value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1344,16 +1387,16 @@ export class RecipientRegistry extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } get lastUpdatedAt(): string | null { let value = this.get("lastUpdatedAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1361,10 +1404,10 @@ export class RecipientRegistry extends Entity { } set lastUpdatedAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("lastUpdatedAt"); } else { - this.set("lastUpdatedAt", Value.fromString(value as string)); + this.set("lastUpdatedAt", Value.fromString(value)); } } } @@ -1377,22 +1420,23 @@ export class Recipient extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save Recipient entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save Recipient entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("Recipient", id.toString(), this); + assert(id != null, "Cannot save Recipient entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type Recipient must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("Recipient", id.toString(), this); + } } static load(id: string): Recipient | null { - return store.get("Recipient", id) as Recipient | null; + return changetype(store.get("Recipient", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -1401,7 +1445,7 @@ export class Recipient extends Entity { get recipientRegistry(): string | null { let value = this.get("recipientRegistry"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1409,16 +1453,16 @@ export class Recipient extends Entity { } set recipientRegistry(value: string | null) { - if (value === null) { + if (!value) { this.unset("recipientRegistry"); } else { - this.set("recipientRegistry", Value.fromString(value as string)); + this.set("recipientRegistry", Value.fromString(value)); } } get recipientIndex(): BigInt | null { let value = this.get("recipientIndex"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1426,16 +1470,16 @@ export class Recipient extends Entity { } set recipientIndex(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("recipientIndex"); } else { - this.set("recipientIndex", Value.fromBigInt(value as BigInt)); + this.set("recipientIndex", Value.fromBigInt(value)); } } get requestType(): string | null { let value = this.get("requestType"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1443,16 +1487,16 @@ export class Recipient extends Entity { } set requestType(value: string | null) { - if (value === null) { + if (!value) { this.unset("requestType"); } else { - this.set("requestType", Value.fromString(value as string)); + this.set("requestType", Value.fromString(value)); } } get requester(): string | null { let value = this.get("requester"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1460,16 +1504,16 @@ export class Recipient extends Entity { } set requester(value: string | null) { - if (value === null) { + if (!value) { this.unset("requester"); } else { - this.set("requester", Value.fromString(value as string)); + this.set("requester", Value.fromString(value)); } } get submissionTime(): string | null { let value = this.get("submissionTime"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1477,16 +1521,16 @@ export class Recipient extends Entity { } set submissionTime(value: string | null) { - if (value === null) { + if (!value) { this.unset("submissionTime"); } else { - this.set("submissionTime", Value.fromString(value as string)); + this.set("submissionTime", Value.fromString(value)); } } get deposit(): BigInt | null { let value = this.get("deposit"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1494,16 +1538,16 @@ export class Recipient extends Entity { } set deposit(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("deposit"); } else { - this.set("deposit", Value.fromBigInt(value as BigInt)); + this.set("deposit", Value.fromBigInt(value)); } } get recipientAddress(): Bytes | null { let value = this.get("recipientAddress"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -1511,16 +1555,16 @@ export class Recipient extends Entity { } set recipientAddress(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("recipientAddress"); } else { - this.set("recipientAddress", Value.fromBytes(value as Bytes)); + this.set("recipientAddress", Value.fromBytes(value)); } } get recipientMetadata(): string | null { let value = this.get("recipientMetadata"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1528,16 +1572,16 @@ export class Recipient extends Entity { } set recipientMetadata(value: string | null) { - if (value === null) { + if (!value) { this.unset("recipientMetadata"); } else { - this.set("recipientMetadata", Value.fromString(value as string)); + this.set("recipientMetadata", Value.fromString(value)); } } get rejected(): boolean { let value = this.get("rejected"); - return value.toBoolean(); + return value!.toBoolean(); } set rejected(value: boolean) { @@ -1546,7 +1590,7 @@ export class Recipient extends Entity { get verified(): boolean { let value = this.get("verified"); - return value.toBoolean(); + return value!.toBoolean(); } set verified(value: boolean) { @@ -1555,7 +1599,7 @@ export class Recipient extends Entity { get voteOptionIndex(): BigInt | null { let value = this.get("voteOptionIndex"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -1563,16 +1607,16 @@ export class Recipient extends Entity { } set voteOptionIndex(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("voteOptionIndex"); } else { - this.set("voteOptionIndex", Value.fromBigInt(value as BigInt)); + this.set("voteOptionIndex", Value.fromBigInt(value)); } } get requestResolvedHash(): Bytes | null { let value = this.get("requestResolvedHash"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -1580,16 +1624,16 @@ export class Recipient extends Entity { } set requestResolvedHash(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("requestResolvedHash"); } else { - this.set("requestResolvedHash", Value.fromBytes(value as Bytes)); + this.set("requestResolvedHash", Value.fromBytes(value)); } } get requestSubmittedHash(): Bytes | null { let value = this.get("requestSubmittedHash"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -1597,16 +1641,16 @@ export class Recipient extends Entity { } set requestSubmittedHash(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("requestSubmittedHash"); } else { - this.set("requestSubmittedHash", Value.fromBytes(value as Bytes)); + this.set("requestSubmittedHash", Value.fromBytes(value)); } } get fundingRounds(): Array | null { let value = this.get("fundingRounds"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1614,16 +1658,16 @@ export class Recipient extends Entity { } set fundingRounds(value: Array | null) { - if (value === null) { + if (!value) { this.unset("fundingRounds"); } else { - this.set("fundingRounds", Value.fromStringArray(value as Array)); + this.set("fundingRounds", Value.fromStringArray(>value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1631,16 +1675,16 @@ export class Recipient extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } get lastUpdatedAt(): string | null { let value = this.get("lastUpdatedAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1648,10 +1692,10 @@ export class Recipient extends Entity { } set lastUpdatedAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("lastUpdatedAt"); } else { - this.set("lastUpdatedAt", Value.fromString(value as string)); + this.set("lastUpdatedAt", Value.fromString(value)); } } } @@ -1664,22 +1708,25 @@ export class ContributorRegistry extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save ContributorRegistry entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save ContributorRegistry entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("ContributorRegistry", id.toString(), this); + assert(id != null, "Cannot save ContributorRegistry entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type ContributorRegistry must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("ContributorRegistry", id.toString(), this); + } } static load(id: string): ContributorRegistry | null { - return store.get("ContributorRegistry", id) as ContributorRegistry | null; + return changetype( + store.get("ContributorRegistry", id) + ); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -1688,7 +1735,7 @@ export class ContributorRegistry extends Entity { get fundingRoundFactory(): string { let value = this.get("fundingRoundFactory"); - return value.toString(); + return value!.toString(); } set fundingRoundFactory(value: string) { @@ -1697,7 +1744,7 @@ export class ContributorRegistry extends Entity { get context(): string | null { let value = this.get("context"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1705,16 +1752,16 @@ export class ContributorRegistry extends Entity { } set context(value: string | null) { - if (value === null) { + if (!value) { this.unset("context"); } else { - this.set("context", Value.fromString(value as string)); + this.set("context", Value.fromString(value)); } } get owner(): Bytes | null { let value = this.get("owner"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -1722,16 +1769,16 @@ export class ContributorRegistry extends Entity { } set owner(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("owner"); } else { - this.set("owner", Value.fromBytes(value as Bytes)); + this.set("owner", Value.fromBytes(value)); } } get contributors(): Array | null { let value = this.get("contributors"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1739,16 +1786,16 @@ export class ContributorRegistry extends Entity { } set contributors(value: Array | null) { - if (value === null) { + if (!value) { this.unset("contributors"); } else { - this.set("contributors", Value.fromStringArray(value as Array)); + this.set("contributors", Value.fromStringArray(>value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1756,16 +1803,16 @@ export class ContributorRegistry extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } get lastUpdatedAt(): string | null { let value = this.get("lastUpdatedAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1773,10 +1820,10 @@ export class ContributorRegistry extends Entity { } set lastUpdatedAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("lastUpdatedAt"); } else { - this.set("lastUpdatedAt", Value.fromString(value as string)); + this.set("lastUpdatedAt", Value.fromString(value)); } } } @@ -1789,22 +1836,23 @@ export class Contributor extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save Contributor entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save Contributor entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("Contributor", id.toString(), this); + assert(id != null, "Cannot save Contributor entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type Contributor must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("Contributor", id.toString(), this); + } } static load(id: string): Contributor | null { - return store.get("Contributor", id) as Contributor | null; + return changetype(store.get("Contributor", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -1813,7 +1861,7 @@ export class Contributor extends Entity { get contributorRegistry(): string { let value = this.get("contributorRegistry"); - return value.toString(); + return value!.toString(); } set contributorRegistry(value: string) { @@ -1822,7 +1870,7 @@ export class Contributor extends Entity { get votes(): Array | null { let value = this.get("votes"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1830,16 +1878,16 @@ export class Contributor extends Entity { } set votes(value: Array | null) { - if (value === null) { + if (!value) { this.unset("votes"); } else { - this.set("votes", Value.fromStringArray(value as Array)); + this.set("votes", Value.fromStringArray(>value)); } } get verifiedTimeStamp(): string | null { let value = this.get("verifiedTimeStamp"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1847,16 +1895,16 @@ export class Contributor extends Entity { } set verifiedTimeStamp(value: string | null) { - if (value === null) { + if (!value) { this.unset("verifiedTimeStamp"); } else { - this.set("verifiedTimeStamp", Value.fromString(value as string)); + this.set("verifiedTimeStamp", Value.fromString(value)); } } get contributorAddress(): Bytes | null { let value = this.get("contributorAddress"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -1864,16 +1912,16 @@ export class Contributor extends Entity { } set contributorAddress(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("contributorAddress"); } else { - this.set("contributorAddress", Value.fromBytes(value as Bytes)); + this.set("contributorAddress", Value.fromBytes(value)); } } get fundingRounds(): Array | null { let value = this.get("fundingRounds"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1881,16 +1929,16 @@ export class Contributor extends Entity { } set fundingRounds(value: Array | null) { - if (value === null) { + if (!value) { this.unset("fundingRounds"); } else { - this.set("fundingRounds", Value.fromStringArray(value as Array)); + this.set("fundingRounds", Value.fromStringArray(>value)); } } get contributions(): Array | null { let value = this.get("contributions"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toStringArray(); @@ -1898,16 +1946,16 @@ export class Contributor extends Entity { } set contributions(value: Array | null) { - if (value === null) { + if (!value) { this.unset("contributions"); } else { - this.set("contributions", Value.fromStringArray(value as Array)); + this.set("contributions", Value.fromStringArray(>value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1915,16 +1963,16 @@ export class Contributor extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } get lastUpdatedAt(): string | null { let value = this.get("lastUpdatedAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1932,10 +1980,10 @@ export class Contributor extends Entity { } set lastUpdatedAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("lastUpdatedAt"); } else { - this.set("lastUpdatedAt", Value.fromString(value as string)); + this.set("lastUpdatedAt", Value.fromString(value)); } } } @@ -1948,22 +1996,23 @@ export class Coordinator extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save Coordinator entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save Coordinator entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("Coordinator", id.toString(), this); + assert(id != null, "Cannot save Coordinator entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type Coordinator must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("Coordinator", id.toString(), this); + } } static load(id: string): Coordinator | null { - return store.get("Coordinator", id) as Coordinator | null; + return changetype(store.get("Coordinator", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -1972,7 +2021,7 @@ export class Coordinator extends Entity { get contact(): string | null { let value = this.get("contact"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1980,16 +2029,16 @@ export class Coordinator extends Entity { } set contact(value: string | null) { - if (value === null) { + if (!value) { this.unset("contact"); } else { - this.set("contact", Value.fromString(value as string)); + this.set("contact", Value.fromString(value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -1997,16 +2046,16 @@ export class Coordinator extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } get lastUpdatedAt(): string | null { let value = this.get("lastUpdatedAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2014,10 +2063,10 @@ export class Coordinator extends Entity { } set lastUpdatedAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("lastUpdatedAt"); } else { - this.set("lastUpdatedAt", Value.fromString(value as string)); + this.set("lastUpdatedAt", Value.fromString(value)); } } } @@ -2030,22 +2079,23 @@ export class Contribution extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save Contribution entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save Contribution entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("Contribution", id.toString(), this); + assert(id != null, "Cannot save Contribution entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type Contribution must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("Contribution", id.toString(), this); + } } static load(id: string): Contribution | null { - return store.get("Contribution", id) as Contribution | null; + return changetype(store.get("Contribution", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -2054,7 +2104,7 @@ export class Contribution extends Entity { get contributor(): string | null { let value = this.get("contributor"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2062,16 +2112,16 @@ export class Contribution extends Entity { } set contributor(value: string | null) { - if (value === null) { + if (!value) { this.unset("contributor"); } else { - this.set("contributor", Value.fromString(value as string)); + this.set("contributor", Value.fromString(value)); } } get fundingRound(): string | null { let value = this.get("fundingRound"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2079,16 +2129,16 @@ export class Contribution extends Entity { } set fundingRound(value: string | null) { - if (value === null) { + if (!value) { this.unset("fundingRound"); } else { - this.set("fundingRound", Value.fromString(value as string)); + this.set("fundingRound", Value.fromString(value)); } } get amount(): BigInt | null { let value = this.get("amount"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -2096,16 +2146,16 @@ export class Contribution extends Entity { } set amount(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("amount"); } else { - this.set("amount", Value.fromBigInt(value as BigInt)); + this.set("amount", Value.fromBigInt(value)); } } get voiceCredits(): BigInt | null { let value = this.get("voiceCredits"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -2113,16 +2163,16 @@ export class Contribution extends Entity { } set voiceCredits(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("voiceCredits"); } else { - this.set("voiceCredits", Value.fromBigInt(value as BigInt)); + this.set("voiceCredits", Value.fromBigInt(value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2130,10 +2180,10 @@ export class Contribution extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } } @@ -2146,22 +2196,23 @@ export class Vote extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save Vote entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save Vote entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("Vote", id.toString(), this); + assert(id != null, "Cannot save Vote entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type Vote must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("Vote", id.toString(), this); + } } static load(id: string): Vote | null { - return store.get("Vote", id) as Vote | null; + return changetype(store.get("Vote", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -2170,7 +2221,7 @@ export class Vote extends Entity { get contributor(): string | null { let value = this.get("contributor"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2178,16 +2229,16 @@ export class Vote extends Entity { } set contributor(value: string | null) { - if (value === null) { + if (!value) { this.unset("contributor"); } else { - this.set("contributor", Value.fromString(value as string)); + this.set("contributor", Value.fromString(value)); } } get fundingRound(): string | null { let value = this.get("fundingRound"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2195,16 +2246,16 @@ export class Vote extends Entity { } set fundingRound(value: string | null) { - if (value === null) { + if (!value) { this.unset("fundingRound"); } else { - this.set("fundingRound", Value.fromString(value as string)); + this.set("fundingRound", Value.fromString(value)); } } get voterAddress(): Bytes | null { let value = this.get("voterAddress"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -2212,16 +2263,16 @@ export class Vote extends Entity { } set voterAddress(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("voterAddress"); } else { - this.set("voterAddress", Value.fromBytes(value as Bytes)); + this.set("voterAddress", Value.fromBytes(value)); } } get secret(): boolean { let value = this.get("secret"); - return value.toBoolean(); + return value!.toBoolean(); } set secret(value: boolean) { @@ -2237,22 +2288,23 @@ export class Donation extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save Donation entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save Donation entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("Donation", id.toString(), this); + assert(id != null, "Cannot save Donation entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type Donation must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("Donation", id.toString(), this); + } } static load(id: string): Donation | null { - return store.get("Donation", id) as Donation | null; + return changetype(store.get("Donation", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -2261,7 +2313,7 @@ export class Donation extends Entity { get recipient(): Bytes | null { let value = this.get("recipient"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -2269,16 +2321,16 @@ export class Donation extends Entity { } set recipient(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("recipient"); } else { - this.set("recipient", Value.fromBytes(value as Bytes)); + this.set("recipient", Value.fromBytes(value)); } } get fundingRound(): string | null { let value = this.get("fundingRound"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2286,16 +2338,16 @@ export class Donation extends Entity { } set fundingRound(value: string | null) { - if (value === null) { + if (!value) { this.unset("fundingRound"); } else { - this.set("fundingRound", Value.fromString(value as string)); + this.set("fundingRound", Value.fromString(value)); } } get amount(): BigInt | null { let value = this.get("amount"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -2303,16 +2355,16 @@ export class Donation extends Entity { } set amount(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("amount"); } else { - this.set("amount", Value.fromBigInt(value as BigInt)); + this.set("amount", Value.fromBigInt(value)); } } get voteOptionIndex(): BigInt | null { let value = this.get("voteOptionIndex"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -2320,16 +2372,16 @@ export class Donation extends Entity { } set voteOptionIndex(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("voteOptionIndex"); } else { - this.set("voteOptionIndex", Value.fromBigInt(value as BigInt)); + this.set("voteOptionIndex", Value.fromBigInt(value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2337,10 +2389,10 @@ export class Donation extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } } @@ -2353,22 +2405,23 @@ export class Token extends Entity { save(): void { let id = this.get("id"); - assert(id !== null, "Cannot save Token entity without an ID"); - assert( - id.kind == ValueKind.STRING, - "Cannot save Token entity with non-string ID. " + - 'Considering using .toHex() to convert the "id" to a string.' - ); - store.set("Token", id.toString(), this); + assert(id != null, "Cannot save Token entity without an ID"); + if (id) { + assert( + id.kind == ValueKind.STRING, + `Entities of type Token must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + ); + store.set("Token", id.toString(), this); + } } static load(id: string): Token | null { - return store.get("Token", id) as Token | null; + return changetype(store.get("Token", id)); } get id(): string { let value = this.get("id"); - return value.toString(); + return value!.toString(); } set id(value: string) { @@ -2377,7 +2430,7 @@ export class Token extends Entity { get tokenAddress(): Bytes | null { let value = this.get("tokenAddress"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBytes(); @@ -2385,16 +2438,16 @@ export class Token extends Entity { } set tokenAddress(value: Bytes | null) { - if (value === null) { + if (!value) { this.unset("tokenAddress"); } else { - this.set("tokenAddress", Value.fromBytes(value as Bytes)); + this.set("tokenAddress", Value.fromBytes(value)); } } get symbol(): string | null { let value = this.get("symbol"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2402,16 +2455,16 @@ export class Token extends Entity { } set symbol(value: string | null) { - if (value === null) { + if (!value) { this.unset("symbol"); } else { - this.set("symbol", Value.fromString(value as string)); + this.set("symbol", Value.fromString(value)); } } get decimals(): BigInt | null { let value = this.get("decimals"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toBigInt(); @@ -2419,16 +2472,16 @@ export class Token extends Entity { } set decimals(value: BigInt | null) { - if (value === null) { + if (!value) { this.unset("decimals"); } else { - this.set("decimals", Value.fromBigInt(value as BigInt)); + this.set("decimals", Value.fromBigInt(value)); } } get createdAt(): string | null { let value = this.get("createdAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2436,16 +2489,16 @@ export class Token extends Entity { } set createdAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("createdAt"); } else { - this.set("createdAt", Value.fromString(value as string)); + this.set("createdAt", Value.fromString(value)); } } get lastUpdatedAt(): string | null { let value = this.get("lastUpdatedAt"); - if (value === null || value.kind == ValueKind.NULL) { + if (!value || value.kind == ValueKind.NULL) { return null; } else { return value.toString(); @@ -2453,10 +2506,10 @@ export class Token extends Entity { } set lastUpdatedAt(value: string | null) { - if (value === null) { + if (!value) { this.unset("lastUpdatedAt"); } else { - this.set("lastUpdatedAt", Value.fromString(value as string)); + this.set("lastUpdatedAt", Value.fromString(value)); } } } diff --git a/subgraph/generated/templates/FundingRound/FundingRound.ts b/subgraph/generated/templates/FundingRound/FundingRound.ts index 7221e8d8b..6c3bcd6cb 100644 --- a/subgraph/generated/templates/FundingRound/FundingRound.ts +++ b/subgraph/generated/templates/FundingRound/FundingRound.ts @@ -526,7 +526,9 @@ export class ContributeCall__Inputs { } get pubKey(): ContributeCallPubKeyStruct { - return this._call.inputValues[0].value.toTuple() as ContributeCallPubKeyStruct; + return changetype( + this._call.inputValues[0].value.toTuple() + ); } get amount(): BigInt { diff --git a/subgraph/generated/templates/MACI/FundingRound.ts b/subgraph/generated/templates/MACI/FundingRound.ts index 7221e8d8b..6c3bcd6cb 100644 --- a/subgraph/generated/templates/MACI/FundingRound.ts +++ b/subgraph/generated/templates/MACI/FundingRound.ts @@ -526,7 +526,9 @@ export class ContributeCall__Inputs { } get pubKey(): ContributeCallPubKeyStruct { - return this._call.inputValues[0].value.toTuple() as ContributeCallPubKeyStruct; + return changetype( + this._call.inputValues[0].value.toTuple() + ); } get amount(): BigInt { diff --git a/subgraph/generated/templates/MACI/MACI.ts b/subgraph/generated/templates/MACI/MACI.ts index de37f2956..34c923d6f 100644 --- a/subgraph/generated/templates/MACI/MACI.ts +++ b/subgraph/generated/templates/MACI/MACI.ts @@ -24,11 +24,15 @@ export class PublishMessage__Params { } get _message(): PublishMessage_messageStruct { - return this._event.parameters[0].value.toTuple() as PublishMessage_messageStruct; + return changetype( + this._event.parameters[0].value.toTuple() + ); } get _encPubKey(): PublishMessage_encPubKeyStruct { - return this._event.parameters[1].value.toTuple() as PublishMessage_encPubKeyStruct; + return changetype( + this._event.parameters[1].value.toTuple() + ); } } @@ -66,7 +70,9 @@ export class SignUp__Params { } get _userPubKey(): SignUp_userPubKeyStruct { - return this._event.parameters[0].value.toTuple() as SignUp_userPubKeyStruct; + return changetype( + this._event.parameters[0].value.toTuple() + ); } get _stateIndex(): BigInt { @@ -103,6 +109,14 @@ export class MACI__coordinatorPubKeyResult { map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); return map; } + + getX(): BigInt { + return this.value0; + } + + getY(): BigInt { + return this.value1; + } } export class MACI__genBatchUstPublicSignalsInput_ecdhPubKeysStruct extends ethereum.Tuple { @@ -127,7 +141,9 @@ export class MACI__hashMessageInput_messageStruct extends ethereum.Tuple { export class MACI__hashStateLeafInput_stateLeafStruct extends ethereum.Tuple { get pubKey(): MACI__hashStateLeafInput_stateLeafPubKeyStruct { - return this[0].toTuple() as MACI__hashStateLeafInput_stateLeafPubKeyStruct; + return changetype( + this[0].toTuple() + ); } get voteOptionTreeRoot(): BigInt { @@ -180,6 +196,18 @@ export class MACI__treeDepthsResult { ); return map; } + + getStateTreeDepth(): i32 { + return this.value0; + } + + getMessageTreeDepth(): i32 { + return this.value1; + } + + getVoteOptionTreeDepth(): i32 { + return this.value2; + } } export class MACI extends ethereum.SmartContract { @@ -1305,15 +1333,21 @@ export class ConstructorCall__Inputs { } get _treeDepths(): ConstructorCall_treeDepthsStruct { - return this._call.inputValues[0].value.toTuple() as ConstructorCall_treeDepthsStruct; + return changetype( + this._call.inputValues[0].value.toTuple() + ); } get _batchSizes(): ConstructorCall_batchSizesStruct { - return this._call.inputValues[1].value.toTuple() as ConstructorCall_batchSizesStruct; + return changetype( + this._call.inputValues[1].value.toTuple() + ); } get _maxValues(): ConstructorCall_maxValuesStruct { - return this._call.inputValues[2].value.toTuple() as ConstructorCall_maxValuesStruct; + return changetype( + this._call.inputValues[2].value.toTuple() + ); } get _signUpGatekeeper(): Address { @@ -1341,7 +1375,9 @@ export class ConstructorCall__Inputs { } get _coordinatorPubKey(): ConstructorCall_coordinatorPubKeyStruct { - return this._call.inputValues[9].value.toTuple() as ConstructorCall_coordinatorPubKeyStruct; + return changetype( + this._call.inputValues[9].value.toTuple() + ); } get _coordinatorAddress(): Address { @@ -1549,11 +1585,15 @@ export class PublishMessageCall__Inputs { } get _message(): PublishMessageCall_messageStruct { - return this._call.inputValues[0].value.toTuple() as PublishMessageCall_messageStruct; + return changetype( + this._call.inputValues[0].value.toTuple() + ); } get _encPubKey(): PublishMessageCall_encPubKeyStruct { - return this._call.inputValues[1].value.toTuple() as PublishMessageCall_encPubKeyStruct; + return changetype( + this._call.inputValues[1].value.toTuple() + ); } } @@ -1603,7 +1643,9 @@ export class SignUpCall__Inputs { } get _userPubKey(): SignUpCall_userPubKeyStruct { - return this._call.inputValues[0].value.toTuple() as SignUpCall_userPubKeyStruct; + return changetype( + this._call.inputValues[0].value.toTuple() + ); } get _signUpGatekeeperData(): Bytes { diff --git a/subgraph/package.json b/subgraph/package.json index ee806307a..1bbfbd8b8 100644 --- a/subgraph/package.json +++ b/subgraph/package.json @@ -29,8 +29,8 @@ "gen-uml": "graphqlviz https://api.thegraph.com/subgraphs/name/clrfund/clrfund | dot -Tpng -o subgraphUML.png" }, "dependencies": { - "@graphprotocol/graph-cli": "0.21.0", - "@graphprotocol/graph-ts": "0.20.0" + "@graphprotocol/graph-cli": "0.37.5", + "@graphprotocol/graph-ts": "0.29.1" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^2.34.0", diff --git a/subgraph/schema.graphql b/subgraph/schema.graphql index 8dc58d8f9..4236432fd 100644 --- a/subgraph/schema.graphql +++ b/subgraph/schema.graphql @@ -38,7 +38,10 @@ type Message @entity { iv: BigInt! publicKey: PublicKey fundingRound: FundingRound + submittedBy: Bytes timestamp: String + blockNumber: BigInt! + transactionIndex: BigInt! } type PublicKey @entity { diff --git a/subgraph/src/FundingRoundFactoryMapping.ts b/subgraph/src/FundingRoundFactoryMapping.ts index 43cac895d..5dab0e77c 100644 --- a/subgraph/src/FundingRoundFactoryMapping.ts +++ b/subgraph/src/FundingRoundFactoryMapping.ts @@ -126,16 +126,19 @@ function createToken(tokenAddress: Address, blockTimestamp: BigInt): Token { function createOrUpdateFundingRoundFactory( fundingRoundFactoryAddress: Address, timestamp: BigInt -): FundingRoundFactory | null { +): FundingRoundFactory { let fundingRoundFactoryId = fundingRoundFactoryAddress.toHexString() let fundingRoundFactoryContract = FundingRoundFactoryContract.bind( fundingRoundFactoryAddress ) - let fundingRoundFactory = FundingRoundFactory.load(fundingRoundFactoryId) - if (!fundingRoundFactory) { - fundingRoundFactory = new FundingRoundFactory(fundingRoundFactoryId) + let existingFundingRoundFactory = FundingRoundFactory.load( + fundingRoundFactoryId + ) + let fundingRoundFactory = new FundingRoundFactory(fundingRoundFactoryId) + if (existingFundingRoundFactory) { + fundingRoundFactory = existingFundingRoundFactory } let maciFactoryAddressCall = fundingRoundFactoryContract.try_maciFactory() diff --git a/subgraph/src/MACIMapping.ts b/subgraph/src/MACIMapping.ts index bf84663c3..19d31f2a6 100644 --- a/subgraph/src/MACIMapping.ts +++ b/subgraph/src/MACIMapping.ts @@ -1,4 +1,4 @@ -import { log } from '@graphprotocol/graph-ts' +import { log, ByteArray, crypto, BigInt } from '@graphprotocol/graph-ts' import { PublishMessage, SignUp } from '../generated/templates/MACI/MACI' import { FundingRound, Message, PublicKey } from '../generated/schema' @@ -19,15 +19,26 @@ import { FundingRound, Message, PublicKey } from '../generated/schema' // - contract.verifications(...) // - contract.verifier(...) +function makePubKeyId(x: BigInt, y: BigInt): string { + let pubKeyX = x.toString() + let pubKeyY = y.toString() + let pubKeyXY = ByteArray.fromUTF8(pubKeyX + '.' + pubKeyY) + let publicKeyId = crypto.keccak256(pubKeyXY).toHexString() + return publicKeyId +} + export function handlePublishMessage(event: PublishMessage): void { - let fundingRoundId = event.transaction.to.toHexString() - if (fundingRoundId == null) { + if (!event.transaction.to) { log.error( 'Error: handlePublishMessage failed fundingRound not registered', [] ) return } + + let fundingRoundAddress = event.transaction.to! + let fundingRoundId = fundingRoundAddress.toHex() + let fundingRound = FundingRound.load(fundingRoundId) if (fundingRound == null) { log.error( @@ -37,14 +48,23 @@ export function handlePublishMessage(event: PublishMessage): void { return } - let messageID = event.transaction.hash.toHexString() + let messageID = + event.transaction.hash.toHexString() + + '-' + + event.transactionLogIndex.toString() let timestamp = event.block.timestamp.toString() let message = new Message(messageID) message.data = event.params._message.data message.iv = event.params._message.iv + message.blockNumber = event.block.number + message.transactionIndex = event.transaction.index + message.submittedBy = event.transaction.from - let publicKeyId = event.transaction.from.toHexString() + let publicKeyId = makePubKeyId( + event.params._encPubKey.x, + event.params._encPubKey.y + ) let publicKey = PublicKey.load(publicKeyId) //NOTE: If the public keys aren't being tracked initialize them @@ -52,15 +72,12 @@ export function handlePublishMessage(event: PublishMessage): void { let publicKey = new PublicKey(publicKeyId) publicKey.x = event.params._encPubKey.x publicKey.y = event.params._encPubKey.y - - let _messages = [messageID] as string[] - publicKey.messages = _messages publicKey.fundingRound = fundingRoundId publicKey.save() } - message.publicKey = publicKeyId as string + message.publicKey = publicKeyId message.timestamp = timestamp message.fundingRound = fundingRoundId message.save() @@ -68,7 +85,10 @@ export function handlePublishMessage(event: PublishMessage): void { } export function handleSignUp(event: SignUp): void { - let publicKeyId = event.transaction.from.toHexString() + let publicKeyId = makePubKeyId( + event.params._userPubKey.x, + event.params._userPubKey.y + ) let publicKey = PublicKey.load(publicKeyId) //NOTE: If the public keys aren't being tracked initialize them @@ -80,6 +100,15 @@ export function handleSignUp(event: SignUp): void { publicKey.voiceCreditBalance = event.params._voiceCreditBalance + let fundingRoundAddress = event.transaction.to! + let fundingRoundId = fundingRoundAddress.toHex() + let fundingRound = FundingRound.load(fundingRoundId) + if (fundingRound == null) { + log.error('Error: handleSignUp failed, fundingRound not registered', []) + return + } + + publicKey.fundingRound = fundingRoundId publicKey.save() } diff --git a/subgraph/subgraph.template.yaml b/subgraph/subgraph.template.yaml index 9a273f654..93a35b931 100644 --- a/subgraph/subgraph.template.yaml +++ b/subgraph/subgraph.template.yaml @@ -1,4 +1,4 @@ -specVersion: 0.0.2 +specVersion: 0.0.4 description: clr.fund repository: https://github.com/clrfund/monorepo schema: @@ -13,7 +13,7 @@ dataSources: startBlock: {{factoryStartBlock}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - FundingRoundFactory @@ -58,7 +58,7 @@ dataSources: startBlock: {{recipientRegistryStartBlock}} mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - RecipientRegistry @@ -82,7 +82,7 @@ templates: abi: FundingRound mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - FundingRound @@ -118,7 +118,7 @@ templates: abi: OptimisticRecipientRegistry mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - RecipientRegistry @@ -141,7 +141,7 @@ templates: abi: BrightIdUserRegistry mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - ContributorRegistry @@ -162,7 +162,7 @@ templates: abi: MACI mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - MACI diff --git a/subgraph/subgraph.yaml b/subgraph/subgraph.yaml index 0bc84a277..e4d0bcf32 100644 --- a/subgraph/subgraph.yaml +++ b/subgraph/subgraph.yaml @@ -1,4 +1,4 @@ -specVersion: 0.0.2 +specVersion: 0.0.4 description: clr.fund repository: https://github.com/clrfund/monorepo schema: @@ -13,7 +13,7 @@ dataSources: startBlock: 15217676 mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - FundingRoundFactory @@ -58,7 +58,7 @@ dataSources: startBlock: 15217676 mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - RecipientRegistry @@ -82,7 +82,7 @@ templates: abi: FundingRound mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - FundingRound @@ -118,7 +118,7 @@ templates: abi: OptimisticRecipientRegistry mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - RecipientRegistry @@ -141,7 +141,7 @@ templates: abi: BrightIdUserRegistry mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - ContributorRegistry @@ -162,7 +162,7 @@ templates: abi: MACI mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.6 language: wasm/assemblyscript entities: - MACI diff --git a/vue-app/.env.example b/vue-app/.env.example index e7b3037ed..4834e097f 100644 --- a/vue-app/.env.example +++ b/vue-app/.env.example @@ -19,8 +19,6 @@ VUE_APP_IPFS_SECRET_API_KEY= VUE_APP_SUBGRAPH_URL=http://localhost:8000/subgraphs/name/daodesigner/clrfund -# Comma-separated list of URLs -VUE_APP_GUN_PEERS=http://localhost:8765/gun VUE_APP_CLRFUND_FACTORY_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 diff --git a/vue-app/.env.xdai b/vue-app/.env.xdai index 3e31b708b..89e95b74b 100644 --- a/vue-app/.env.xdai +++ b/vue-app/.env.xdai @@ -11,9 +11,6 @@ VUE_APP_IPFS_PINNING_URL=https://api.pinata.cloud/pinning/pinFileToIPFS VUE_APP_IPFS_API_KEY= VUE_APP_IPFS_SECRET_API_KEY= -# Comma-separated list of URLs -VUE_APP_GUN_PEERS= - VUE_APP_CLRFUND_FACTORY_ADDRESS=0x4ede8f30d9c2dc96a9d6787e9c4a478424fb960a # Supported values: simple, brightid diff --git a/codegen.yml b/vue-app/codegen.yml similarity index 75% rename from codegen.yml rename to vue-app/codegen.yml index 77c4d951b..3c69c211e 100644 --- a/codegen.yml +++ b/vue-app/codegen.yml @@ -1,8 +1,8 @@ overwrite: true schema: 'https://api.thegraph.com/subgraphs/name/clrfund/clrfund' -documents: 'vue-app/src/graphql/**/*.graphql' +documents: 'src/graphql/**/*.graphql' generates: - vue-app/src/graphql/API.ts: + src/graphql/API.ts: plugins: - 'typescript' - 'typescript-operations' diff --git a/vue-app/package.json b/vue-app/package.json index ce2655140..14934ccfb 100644 --- a/vue-app/package.json +++ b/vue-app/package.json @@ -3,30 +3,33 @@ "version": "3.0.1", "private": true, "scripts": { - "gun": "gun --host localhost", "serve": "vue-cli-service serve", "build": "rm -rf dist/ && vue-cli-service build && yarn build:lambda", "build:lambda": "netlify-lambda build src/lambda", + "codegen": "graphql-codegen --config codegen.yml", "lint": "vue-cli-service lint", "test": "yarn test:lint && yarn test:lint-i18n && vue-cli-service test:unit", "test:lint": "vue-cli-service lint --no-fix", "test:lint-i18n": "vue-i18n-extract report --vueFiles 'src/**/*.?(vue)' --languageFiles 'src/locales/*.?(json)' --exclude dynamic" }, "dependencies": { + "@clrfund/maci-utils": "^0.0.1", "@kleros/gtcr-encoder": "^1.4.0", "@openfonts/inter_all": "^1.0.2", + "@peculiar/asn1-ecc": "^2.3.4", + "@peculiar/asn1-schema": "^2.3.3", + "@peculiar/asn1-x509": "^2.3.4", "@walletconnect/web3-provider": "^1.5.1", "core-js": "^3.6.4", "crypto-js": "^4.0.0", + "elliptic": "^6.5.4", "ethereum-blockies-base64": "^1.0.2", "ethers": "^5.7.2", "graphql": "^15.5.1", "graphql-request": "^3.5.0", - "gun": "https://github.com/amark/gun", "humanize-duration": "^3.25.1", "is-ipfs": "^2.0.0", "luxon": "^1.28.1", - "maci-domainobjs": "npm:@clrfund/maci-domainobjs@0.10.2", "markdown-it": "^12.0.4", "markdown-it-link-attributes": "^3.0.0", "qrcode": "^1.4.4", @@ -43,12 +46,16 @@ "vuex": "^3.1.2" }, "devDependencies": { + "@graphql-codegen/cli": "2.16.4", + "@graphql-codegen/typescript": "2.8.7", + "@graphql-codegen/typescript-graphql-request": "4.5.8", + "@graphql-codegen/typescript-operations": "2.5.12", "@types/chai": "^4.2.8", "@types/luxon": "^1.26.2", "@types/mocha": "^5.2.4", "@types/vuelidate": "^0.7.14", - "@typescript-eslint/eslint-plugin": "^2.18.0", - "@typescript-eslint/parser": "^2.18.0", + "@typescript-eslint/eslint-plugin": "5.48.2", + "@typescript-eslint/parser": "5.48.2", "@vue/cli-plugin-eslint": "~4.4.6", "@vue/cli-plugin-router": "~4.4.6", "@vue/cli-plugin-typescript": "~4.4.6", @@ -59,15 +66,14 @@ "@vue/eslint-config-typescript": "^5.0.1", "@vue/test-utils": "1.0.0-beta.31", "chai": "^4.1.2", - "eslint": "^6.7.2", - "eslint-plugin-prettier": "^3.4.0", + "eslint": "7.32.0", + "eslint-plugin-prettier": "3.4.1", "eslint-plugin-vue": "^6.1.2", "google-spreadsheet": "^3.1.15", - "gun-cli": "^1.7.1", "netlify-lambda": "^2.0.11", "sass": "^1.25.0", "sass-loader": "^8.0.2", - "typescript": "~3.9.3", + "typescript": "4.1.2", "vue-i18n-extract": "^2.0.7", "vue-template-compiler": "^2.6.11" } diff --git a/vue-app/src/App.vue b/vue-app/src/App.vue index 8aadbe934..1c92eb005 100644 --- a/vue-app/src/App.vue +++ b/vue-app/src/App.vue @@ -53,10 +53,6 @@ import { LOAD_ROUND_INFO, LOAD_RECIPIENT_REGISTRY_INFO, SELECT_ROUND, - LOAD_CART, - LOAD_COMMITTED_CART, - LOAD_CONTRIBUTOR_DATA, - LOGIN_USER, LOAD_FACTORY_INFO, LOAD_MACI_FACTORY_INFO, LOAD_BRIGHT_ID, @@ -128,16 +124,8 @@ export default class App extends Vue { loginUser = async () => { if (!this.$web3.user) return - // Connect & auth to gun db - try { - await this.$store.dispatch(LOGIN_USER, this.$web3.user) - } catch (error) { - /* eslint-disable-next-line no-console */ - console.error(error) - return - } - - this.$store.commit(SET_CURRENT_USER, this.$web3.user) + const user = { ...this.$web3.user } + this.$store.commit(SET_CURRENT_USER, user) this.$store.dispatch(LOAD_USER_INFO) this.$store.dispatch(LOAD_BRIGHT_ID) } @@ -149,11 +137,6 @@ export default class App extends Vue { } this.$store.dispatch(LOAD_USER_INFO) - - // Load cart & contributor data for current round - this.$store.dispatch(LOAD_CART) - this.$store.dispatch(LOAD_COMMITTED_CART) - this.$store.dispatch(LOAD_CONTRIBUTOR_DATA) } get isUserAndRoundLoaded(): boolean { diff --git a/vue-app/src/api/cart.ts b/vue-app/src/api/cart.ts new file mode 100644 index 000000000..bc6f971a0 --- /dev/null +++ b/vue-app/src/api/cart.ts @@ -0,0 +1,99 @@ +import { + CartItem, + getContributorMessages, + getCartStorageKey, +} from './contributions' +import { RoundInfo } from './round' +import { Keypair, Command } from '@clrfund/maci-utils' +import { BigNumber } from 'ethers' +import { getProjectByIndex } from './projects' +import { formatAmount } from '@/utils/amounts' +import { maxDecimals } from './core' +import { storage } from './storage' + +/** + * Get the committed cart items from the subgraph for the user with the encryption key + * + * @param round current round information + * @param encryptionKey encryption key to decrypt the message + * @returns committed cart items + */ +export async function getCommittedCart( + round: RoundInfo, + encryptionKey: string, + contributorAddress: string +): Promise { + const { + coordinatorPubKey, + fundingRoundAddress, + voiceCreditFactor, + nativeTokenDecimals, + recipientRegistryAddress, + } = round + + const encKeypair = await Keypair.createFromSeed(encryptionKey) + + const sharedKey = Keypair.genEcdhSharedKey( + encKeypair.privKey, + coordinatorPubKey + ) + + const messages = await getContributorMessages({ + fundingRoundAddress, + contributorKey: encKeypair, + coordinatorPubKey, + contributorAddress, + }) + + const cartItems = messages.map(async (message) => { + const { command } = Command.decrypt(message, sharedKey) + const { voteOptionIndex, newVoteWeight } = command + + const voteWeightString = newVoteWeight.toString() + const amount = BigNumber.from(voteWeightString) + .mul(voteWeightString) + .mul(voiceCreditFactor) + + const project = await getProjectByIndex( + recipientRegistryAddress, + Number(voteOptionIndex) + ) + + if (!project) { + return null + } + + // after the initial submission, the number of messages submitted to MACI + // cannot be reduced, isCleared is used to mark deleted items + return { + amount: formatAmount(amount, nativeTokenDecimals, null, maxDecimals), + isCleared: amount.isZero(), + ...project, + } + }) + + const committedCart = await Promise.all(cartItems) + return committedCart.filter(Boolean) as CartItem[] +} + +/** + * Check to see if there's uncommitted cart + * + * @param fundingRoundAddress funding round address + * @param walletAddress user wallet address + * @returns true if there's uncommitted cart + */ +export function hasUncommittedCart( + fundingRoundAddress: string, + walletAddress: string +): boolean { + if (!fundingRoundAddress) { + return false + } + const cart = storage.getItemRaw( + walletAddress, + getCartStorageKey(fundingRoundAddress) + ) + + return Boolean(cart) +} diff --git a/vue-app/src/api/contributions.ts b/vue-app/src/api/contributions.ts index 9deb294c8..edba5b097 100644 --- a/vue-app/src/api/contributions.ts +++ b/vue-app/src/api/contributions.ts @@ -2,12 +2,14 @@ import { BigNumber, Contract, Signer, FixedNumber } from 'ethers' import { parseFixed } from '@ethersproject/bignumber' import { TransactionResponse } from '@ethersproject/abstract-provider' -import { Keypair, PrivKey } from 'maci-domainobjs' +import { Keypair, PubKey, Message, Command } from '@clrfund/maci-utils' import { RoundInfo } from './round' import { FundingRound } from './abi' import { Project } from './projects' import sdk from '@/graphql/sdk' +import { getPubKeyId } from './keypair' +import { Transaction } from '@/utils/transaction' export const DEFAULT_CONTRIBUTION_AMOUNT = 5 export const MAX_CONTRIBUTION_AMOUNT = 10000 // See FundingRound.sol @@ -56,34 +58,23 @@ export function serializeContributorData(contributor: Contributor): string { }) } -export function deserializeContributorData( - data: string | null -): Contributor | null { - if (data) { - const parsed = JSON.parse(data) - const keypair = new Keypair(PrivKey.unserialize(parsed.privateKey)) - return { keypair, stateIndex: parsed.stateIndex } - } else { - return null - } -} - export async function getContributionAmount( fundingRoundAddress: string, contributorAddress: string ): Promise { + if (!fundingRoundAddress) { + return BigNumber.from(0) + } const data = await sdk.GetContributionsAmount({ fundingRoundAddress: fundingRoundAddress.toLowerCase(), contributorAddress, }) - if (!data.fundingRound?.contributors?.[0]?.contributions?.length) { + if (!data.contributions?.length) { return BigNumber.from(0) } - return BigNumber.from( - data.fundingRound.contributors[0].contributions[0].amount - ) + return BigNumber.from(data.contributions[0].amount) } export async function withdrawContribution( @@ -95,10 +86,22 @@ export async function withdrawContribution( return transaction } +export async function hasContributorVotedInPreviousRounds( + contributorAddress: string +) { + const data = await sdk.GetContributorVotesForAllRounds({ + contributorAddress, + }) + return !!data.contributors?.[0]?.votes?.length +} + export async function hasContributorVoted( fundingRoundAddress: string, contributorAddress: string ): Promise { + if (!fundingRoundAddress) { + return false + } const data = await sdk.GetContributorVotes({ fundingRoundAddress: fundingRoundAddress.toLowerCase(), contributorAddress, @@ -132,3 +135,105 @@ export function isContributionAmountValid( .toString() return normalizedValue === value } + +/** + * Get the MACI contributor state index + * @param fundingRoundAddress Funding round contract address + * @param pubKey Contributor public key + * @returns Contributor stateIndex returned from MACI + */ +export async function getContributorIndex( + fundingRoundAddress: string, + pubKey: PubKey +): Promise { + if (!fundingRoundAddress) { + return null + } + const id = getPubKeyId(pubKey) + const data = await sdk.GetContributorIndex({ + fundingRoundAddress: fundingRoundAddress.toLowerCase(), + publicKeyId: id, + }) + + return data.publicKey?.stateIndex ? Number(data.publicKey?.stateIndex) : null +} + +/** + * Get the latest set of vote messages submitted by contributor + * @param fundingRoundAddress Funding round contract address + * @param contributorKey Contributor key used to encrypt messages + * @param coordinatorPubKey Coordinator public key + * @returns MACI messages + */ +export async function getContributorMessages({ + fundingRoundAddress, + contributorKey, + coordinatorPubKey, + contributorAddress, +}: { + fundingRoundAddress: string + contributorKey: Keypair + coordinatorPubKey: PubKey + contributorAddress: string +}): Promise { + if (!fundingRoundAddress) { + return [] + } + const key = getPubKeyId(contributorKey.pubKey) + const result = await sdk.GetContributorMessages({ + fundingRoundAddress: fundingRoundAddress.toLowerCase(), + pubKey: key, + contributorAddress: contributorAddress.toLowerCase(), + }) + + if (!(result.messages && result.messages?.length)) { + return [] + } + + const sharedKey = Keypair.genEcdhSharedKey( + contributorKey.privKey, + coordinatorPubKey + ) + + let latestTransaction: Transaction | null = null + const latestMessages = result.messages + .map((message) => { + const { iv, data, blockNumber, transactionIndex } = message + + try { + const maciMessage = new Message(iv, data || []) + const { command, signature } = Command.decrypt(maciMessage, sharedKey) + if (!command.verifySignature(signature, contributorKey.pubKey)) { + return message + } + + const currentTx = new Transaction({ + blockNumber: Number(blockNumber), + transactionIndex: Number(transactionIndex), + }) + + if (!latestTransaction || currentTx.compare(latestTransaction) > 0) { + latestTransaction = currentTx + } + } catch { + // if we can't decrypt the message, filter it out + } + return message + }) + .filter((message) => { + const tx = new Transaction({ + blockNumber: Number(message.blockNumber), + transactionIndex: Number(message.transactionIndex), + }) + return latestTransaction && tx.compare(latestTransaction) === 0 + }) + + if (latestMessages.length <= 0) { + return [] + } + + return latestMessages.map((message) => { + const { iv, data } = message + return new Message(iv, data || []) + }) +} diff --git a/vue-app/src/api/core.ts b/vue-app/src/api/core.ts index 040d55849..95bace21d 100644 --- a/vue-app/src/api/core.ts +++ b/vue-app/src/api/core.ts @@ -18,9 +18,6 @@ export const chainId = Number(process.env.VUE_APP_ETHEREUM_API_CHAINID) export const chain = CHAIN_INFO[chainId] if (!chain) throw new Error('invalid chain id') export const ipfsGatewayUrl = process.env.VUE_APP_IPFS_GATEWAY_URL -export const gunPeers: string[] = process.env.VUE_APP_GUN_PEERS - ? process.env.VUE_APP_GUN_PEERS.split(',') - : [] export const ipfsPinningUrl = process.env.VUE_APP_IPFS_PINNING_URL if (!ipfsPinningUrl) throw new Error('invalid ipfs pinning url') @@ -73,6 +70,9 @@ export enum ThemeMode { DARK = 'dark', } +// the maximum significant digits for displaying the contribution amount on cart +export const maxDecimals = Number(process.env.VUE_APP_MAX_DECIMAL || 1) + // the number of records per batch in the `pending submissions` export file export const exportBatchSize = Number(process.env.VUE_APP_EXPORT_BATCH_SIZE) || 60 diff --git a/vue-app/src/api/gun.ts b/vue-app/src/api/gun.ts deleted file mode 100644 index 640c8908a..000000000 --- a/vue-app/src/api/gun.ts +++ /dev/null @@ -1,87 +0,0 @@ -// Webpack will show warning 'the request of a dependency is an expression' -// https://github.com/amark/gun/issues/890 -import Gun from 'gun/gun' -import 'gun/sea' - -import { gunPeers } from './core' -import { LOGIN_MESSAGE } from './user' -import { md5 } from '@/utils/crypto' - -const GUN_WARNINGS = new Set([ - 'User already created!', - 'User is already being created or authenticated!', -]) - -interface GunSchema { - data: { [key: string]: string } -} - -const db = Gun({ - peers: gunPeers, -}) -const user = db.user() as any - -export async function loginUser( - accountId: string, - encryptionKey: string -): Promise { - // GunDB needs username and password to create a key pair. - // The user name is md5 hash of account ID and login message - const username = md5(`${accountId.toLowerCase()}-${LOGIN_MESSAGE}`) - const password = encryptionKey - await new Promise((resolve, reject) => { - user.create(username, password, (ack) => { - if (ack.ok === 0 || GUN_WARNINGS.has(ack.err)) { - resolve(0) - } else { - reject('Error creating user in GunDB.') - } - }) - }) - await new Promise((resolve, reject) => { - user.auth(username, password, (ack) => { - if (ack.err) { - reject('Error authenticating user in GunDB.') - } else { - resolve(0) - } - }) - }) -} - -export function logoutUser() { - user.leave() -} - -export function setValue(key: string, value: string): void { - // WARNING: saves 'gun' item into localStorage - user.get('data').get(key).put(value) -} - -export async function getValue(key: string): Promise { - return await new Promise((resolve) => { - // WARNING: once() may not work correctly after on() and off() - user - .get('data') - .get(key) - .once((value) => { - resolve(value) - }) - }) -} - -export function watch( - key: string, - callback: (value: string | null) => any -): void { - user - .get('data') - .get(key) - .on((value) => { - callback(value) - }) -} - -export function unwatch(key: string): void { - user.get('data').get(key).off() -} diff --git a/vue-app/src/api/keypair.ts b/vue-app/src/api/keypair.ts new file mode 100644 index 000000000..21d27bbff --- /dev/null +++ b/vue-app/src/api/keypair.ts @@ -0,0 +1,65 @@ +import sdk from '@/graphql/sdk' +import { utils } from 'ethers' +import { Keypair, PubKey } from '@clrfund/maci-utils' + +/** + * get the id of the subgraph public key entity from the pubKey value + * @param pubKey MACI public key + * @returns the id for the subgraph public key entity + */ +export function getPubKeyId(pubKey: PubKey): string { + const pubKeyPair = pubKey.asContractParam() + const id = utils.id(pubKeyPair.x + '.' + pubKeyPair.y) + return id +} + +/** + * Check if the public keys are the same + * @param key1 public key 1 + * @param key2 public key 2 + * @returns true if they are the same + */ +export function isSamePubKey(key1: PubKey, key2: PubKey): boolean { + const k1 = key1.asContractParam() + const k2 = key2.asContractParam() + return k1.x === k2.x && k1.y === k2.y +} + +/** + * Check if the key was used to encrypt messages + * + * @param keypair the key to check + * @param fundingRoundAddress round address + * @param contributorAddress wallet address + * @returns true if the key was used to encrypt messages + */ +export async function findKeyPair({ + keypair, + fundingRoundAddress, + contributorAddress, +}: { + keypair: Keypair + fundingRoundAddress: string + contributorAddress: string +}): Promise { + const pubKeyId = getPubKeyId(keypair.pubKey) + const result = await sdk.GetContributorMessages({ + fundingRoundAddress, + pubKey: pubKeyId, + contributorAddress, + }) + + return result.messages && result.messages.length > 0 +} + +/** + * Check if the public key exists + * @param pubKey public key to check + * @returns true if the public key exists in the subgraph + */ +export async function publicKeyExists(pubKey: PubKey): Promise { + const pubKeyId = getPubKeyId(pubKey) + const data = await sdk.GetPublicKey({ pubKey: pubKeyId }) + + return Boolean(data.publicKey) +} diff --git a/vue-app/src/api/maci.ts b/vue-app/src/api/maci.ts index 556da5a68..93bcbb898 100644 --- a/vue-app/src/api/maci.ts +++ b/vue-app/src/api/maci.ts @@ -2,7 +2,7 @@ import { Contract } from 'ethers' import { provider } from './core' import { MACI } from './abi' import { DateTime } from 'luxon' -import { PubKey } from 'maci-domainobjs' +import { PubKey } from '@clrfund/maci-utils' export type Maci = { maciAddress: string diff --git a/vue-app/src/api/passkey.ts b/vue-app/src/api/passkey.ts new file mode 100644 index 000000000..ad41d7a10 --- /dev/null +++ b/vue-app/src/api/passkey.ts @@ -0,0 +1,170 @@ +import { utils } from 'ethers' +import { operator } from './core' +import { AsnParser } from '@peculiar/asn1-schema' +import { SubjectPublicKeyInfo } from '@peculiar/asn1-x509' +import { ECDSASigValue } from '@peculiar/asn1-ecc' +import _ec from 'elliptic' + +const TIMEOUT = 60000 +const ES256 = -7 +const PublicKeyCredentialType = 'public-key' + +type Signature = { + r: ArrayBuffer + s: ArrayBuffer +} + +let _curve: _ec.ec = null +function getCurve(): _ec.ec { + if (!_curve) { + _curve = new _ec.ec('p256') + } + return _curve +} + +/** + * Determine if the DER-specific `00` byte at the start of an ECDSA signature byte sequence + * should be removed based on the following logic: + * + * "If the leading byte is 0x0, and the the high order bit on the second byte is not set to 0, + * then remove the leading 0x0 byte" + */ +function shouldRemoveLeadingZero(bytes: Uint8Array): boolean { + return bytes[0] === 0x0 && (bytes[1] & (1 << 7)) !== 0 +} + +function recoverPubKey(digest: Uint8Array, signature: Signature): string[] { + const result: string[] = [] + const curve = getCurve() + for (let i = 0; i < 2; i++) { + try { + result.push( + '0x' + curve.recoverPubKey(digest, signature, i).encode('hex', false) + ) + } catch (error) { + // ignore error + } + } + return result +} + +/** + * Parse the credential and return a list of public keys + * + * @param credential public key credential object returned from authentication + * @returns list of public keys recovered from the signature + */ +export function recoverPubKeyFromCredential(credential: any): string[] { + const { authenticatorData, clientDataJSON, signature } = credential.response + const clientDataHash = utils.sha256(new Uint8Array(clientDataJSON)) + const digest = utils.arrayify( + utils.sha256( + utils.concat([new Uint8Array(authenticatorData), clientDataHash]) + ) + ) + + const parsedSignature = AsnParser.parse(signature, ECDSASigValue) + + const rBytes = new Uint8Array(parsedSignature.r) + if (shouldRemoveLeadingZero(rBytes)) { + parsedSignature.r = utils.arrayify(utils.hexDataSlice(rBytes, 1)) + } + const sBytes = new Uint8Array(parsedSignature.s) + if (shouldRemoveLeadingZero(sBytes)) { + parsedSignature.s = utils.arrayify(utils.hexDataSlice(sBytes, 1)) + } + + return recoverPubKey(digest, parsedSignature) +} + +/** + * Return the uncompressed key format if the input key is compressed + * + * @param key public key to normal + * @returns normalized public key + */ +function normalizePublicKey(key: ArrayBuffer): string { + const bytes = new Uint8Array(key) + + if (bytes.length !== 65 && bytes.length !== 33) { + throw new Error('Invalid public key') + } + + if (bytes.length === 65) { + return utils.hexlify(bytes) + } + + const uncompressedKey = getCurve() + .keyFromPublic(bytes) + .getPublic(false, 'hex') + + return `0x${uncompressedKey}` +} + +/** + * Create and get the PublicKeyCredential, use the public key to generate + * the encryption key used to generate the MACI key + */ +export class Credential { + walletAddress: string + + constructor(walletAddress: string) { + this.walletAddress = walletAddress + } + + async create(): Promise { + const challenge = utils.randomBytes(32) + const id = utils.randomBytes(32) + + const pubKeyCredParam = { + type: PublicKeyCredentialType, + alg: ES256, + } as PublicKeyCredentialParameters + + const publicKey = { + challenge, + rp: { + name: operator, + }, + user: { + id, + name: this.walletAddress, + displayName: this.walletAddress, + }, + pubKeyCredParams: [pubKeyCredParam], + timeout: TIMEOUT, + } + + const credential = (await navigator.credentials.create({ + publicKey, + })) as any // PublicKeyCredential, to avoid build error + + const response = credential.response as any // AuthenticatorAttestationResponse + if (!response.getPublicKey) { + throw new Error('Get public key not supported, try a newer browser') + } + + const publicKeyBuffer = response.getPublicKey() + if (!publicKeyBuffer) { + throw new Error('Unable to get public key, try a newer browser') + } + + const pubKey = AsnParser.parse(publicKeyBuffer, SubjectPublicKeyInfo) + const pubKeyHex = normalizePublicKey(pubKey.subjectPublicKey) + return pubKeyHex + } + + async get(): Promise { + const challenge = utils.randomBytes(32) + const publicKey = { + challenge, + timeout: TIMEOUT, + } + + const credential = await navigator.credentials.get({ + publicKey, + }) + + return recoverPubKeyFromCredential(credential) + } +} diff --git a/vue-app/src/api/projects.ts b/vue-app/src/api/projects.ts index 5e3266e7a..cf65f3284 100644 --- a/vue-app/src/api/projects.ts +++ b/vue-app/src/api/projects.ts @@ -1,11 +1,10 @@ import { Signer, BigNumber } from 'ethers' import { TransactionResponse } from '@ethersproject/abstract-provider' -import { recipientRegistryType } from './core' +import { recipientRegistryType, ipfsGatewayUrl } from './core' import SimpleRegistry from './recipient-registry-simple' import OptimisticRegistry from './recipient-registry-optimistic' import KlerosRegistry from './recipient-registry-kleros' - import sdk from '@/graphql/sdk' export interface LeaderboardProject { @@ -103,6 +102,48 @@ export async function registerProject( } } +/** + * Get project information by recipient index + * @param registryAddress recipient registry contract address + * @param recipientIndex recipient index + * @returns Project | null + */ +export async function getProjectByIndex( + registryAddress: string, + recipientIndex: number +): Promise | null> { + const result = await sdk.GetRecipientByIndex({ + registryAddress: registryAddress.toLowerCase(), + recipientIndex, + }) + + if (!result.recipients?.length) { + return null + } + + const [recipient] = result.recipients + let metadata + try { + metadata = JSON.parse(recipient.recipientMetadata || '') + } catch { + metadata = {} + } + + const thumbnailImageUrl = metadata.thumbnailImageHash + ? `${ipfsGatewayUrl}/ipfs/${metadata.thumbnailImageHash}` + : `${ipfsGatewayUrl}/ipfs/${metadata.imageUrl}` + + return { + id: recipient.id, + address: recipient.recipientAddress || '', + name: metadata.name, + description: metadata.description, + tagline: metadata.tagline, + thumbnailImageUrl, + index: recipient.recipientIndex, + } +} + /** * Check if the recipient with the submission hash exists in the subgraph * @param transactionHash recipient submission hash diff --git a/vue-app/src/api/round-static.ts b/vue-app/src/api/round-static.ts index c7ffbf3e0..675a88350 100644 --- a/vue-app/src/api/round-static.ts +++ b/vue-app/src/api/round-static.ts @@ -5,7 +5,7 @@ import { Project, LeaderboardProject } from './projects' import { Token } from './token' import { BigNumber, FixedNumber } from 'ethers' import { DateTime } from 'luxon' -import { Keypair } from 'maci-domainobjs' +import { Keypair } from '@clrfund/maci-utils' import { IPFS } from './ipfs' interface StaticProject extends Project { diff --git a/vue-app/src/api/round.ts b/vue-app/src/api/round.ts index c783aacb4..eade77254 100644 --- a/vue-app/src/api/round.ts +++ b/vue-app/src/api/round.ts @@ -1,6 +1,6 @@ import { BigNumber, FixedNumber } from 'ethers' import { DateTime } from 'luxon' -import { PubKey } from 'maci-domainobjs' +import { PubKey } from '@clrfund/maci-utils' import { factory } from './core' import { Rounds } from './rounds' diff --git a/vue-app/src/api/storage.ts b/vue-app/src/api/storage.ts index 9785ae67a..34071acfb 100644 --- a/vue-app/src/api/storage.ts +++ b/vue-app/src/api/storage.ts @@ -1,9 +1,14 @@ import { sha256, encrypt, decrypt } from '@/utils/crypto' -import { setValue, getValue, watch, unwatch } from './gun' +import { lsSet, lsGet } from '@/utils/localStorage' +import { utils } from 'ethers' function getFullStorageKey(accountId: string, storageKey: string): string { accountId = accountId.toLowerCase() - return sha256(`clrfund-${accountId}-${storageKey}`) + + // remove substring(2) is to remove the leading 0x from the hash + return sha256( + utils.toUtf8Bytes(`clrfund-${accountId}-${storageKey}`) + ).substring(2) } function setItem( @@ -14,36 +19,30 @@ function setItem( ): void { const encryptedValue = encrypt(value, encryptionKey) const fullStorageKey = getFullStorageKey(accountId, storageKey) - setValue(fullStorageKey, encryptedValue) + lsSet(fullStorageKey, encryptedValue) } -async function getItem( +function getItem( accountId: string, encryptionKey: string, storageKey: string -): Promise { +): string | null { const fullStorageKey = getFullStorageKey(accountId, storageKey) - const encryptedValue = await getValue(fullStorageKey) + const encryptedValue = lsGet(fullStorageKey) const value = encryptedValue ? decrypt(encryptedValue, encryptionKey) : null return value } -function watchItem( - accountId: string, - encryptionKey: string, - storageKey: string, - callback: (value: string | null) => any -) { - const fullStorageKey = getFullStorageKey(accountId, storageKey) - watch(fullStorageKey, (encryptedValue) => { - const value = encryptedValue ? decrypt(encryptedValue, encryptionKey) : null - callback(value) - }) -} - -function unwatchItem(accountId: string, storageKey: string): void { +/** + * Get the item without decrypting it + * @param accountId wallet address + * @param storageKey key to the storage + * @returns encrypted string + */ +function getItemRaw(accountId: string, storageKey: string): string | null { const fullStorageKey = getFullStorageKey(accountId, storageKey) - unwatch(fullStorageKey) + const encryptedValue = lsGet(fullStorageKey) + return encryptedValue } -export const storage = { setItem, getItem, watchItem, unwatchItem } +export const storage = { setItem, getItem, getItemRaw } diff --git a/vue-app/src/api/tally.ts b/vue-app/src/api/tally.ts index bc5c7b890..7dd1f8fa8 100644 --- a/vue-app/src/api/tally.ts +++ b/vue-app/src/api/tally.ts @@ -4,7 +4,7 @@ import { FundingRound } from './abi' import { provider, ipfsGatewayUrl } from './core' // https://github.com/webpack/webpack/issues/7378#issuecomment-683891615 -import type { Tally } from '@/utils/maci' +import type { Tally } from '@clrfund/maci-utils' export { Tally } diff --git a/vue-app/src/api/user.ts b/vue-app/src/api/user.ts index d24ac076d..5d57e682a 100644 --- a/vue-app/src/api/user.ts +++ b/vue-app/src/api/user.ts @@ -3,17 +3,21 @@ import { BigNumber, Contract } from 'ethers' import { Web3Provider } from '@ethersproject/providers' import { UserRegistry, ERC20 } from './abi' -import { factory, ipfsGatewayUrl, provider, operator } from './core' +import { chainId, ipfsGatewayUrl, provider, operator } from './core' import { BrightId } from './bright-id' -//TODO: update anywhere this is called to take factory address as a parameter, default to env. variable -export const LOGIN_MESSAGE = `Welcome to ${operator}! +// contractAddress should be the round address, if not available, use funding round factory address +export function getLoginMessage(contractAddress: string): string { + return `Welcome to ${operator}! To get logged in, sign this message to prove you have access to this wallet. This does not cost any ether. You will be asked to sign each time you load the app. -Contract address: ${factory.address.toLowerCase()}.` +Contract address: ${contractAddress.toLowerCase()}. + +Chain ID: ${chainId}` +} export interface User { walletAddress: string @@ -25,6 +29,7 @@ export interface User { etherBalance?: BigNumber | null contribution?: BigNumber | null ensName?: string | null + votedInPreviousRounds?: boolean } export async function getProfileImageUrl( diff --git a/vue-app/src/components/AddToCartButton.vue b/vue-app/src/components/AddToCartButton.vue index 0a6a33f6d..bce682415 100644 --- a/vue-app/src/components/AddToCartButton.vue +++ b/vue-app/src/components/AddToCartButton.vue @@ -29,7 +29,11 @@ import Vue from 'vue' import { Component, Prop } from 'vue-property-decorator' import { DateTime } from 'luxon' -import { SAVE_CART } from '@/store/action-types' +import { + SAVE_CART, + LOAD_OR_CREATE_ENCRYPTION_KEY, + LOAD_CART_DATA, +} from '@/store/action-types' import { ADD_CART_ITEM, TOGGLE_SHOW_CART_PANEL, @@ -42,14 +46,20 @@ import { import { User } from '@/api/user' import { Project } from '@/api/projects' import { RoundStatus } from '@/api/round' +import { hasContributorVoted } from '@/api/contributions' import { CartItem } from '@/api/contributions' import WalletModal from '@/components/WalletModal.vue' import InputButton from '@/components/InputButton.vue' +import ErrorModal from '@/components/ErrorModal.vue' +import PasskeyModal from '@/components/PasskeyModal.vue' +import { hasUncommittedCart } from '@/api/cart' @Component({ components: { WalletModal, InputButton, + ErrorModal, + PasskeyModal, }, }) export default class AddToCartButton extends Vue { @@ -94,14 +104,62 @@ export default class AddToCartButton extends Vue { ) } - contribute() { - this.$store.commit(ADD_CART_ITEM, { - ...this.project, - amount: this.amount.toString(), - isCleared: false, - }) - this.$store.dispatch(SAVE_CART) - this.$store.commit(TOGGLE_EDIT_SELECTION, true) + async showPasskeyModal(): Promise { + const { currentRoundAddress } = this.$store.state + const walletAddress = this.currentUser?.walletAddress + + if (!walletAddress || !currentRoundAddress) { + return false + } + + const votedThisRound = await hasContributorVoted( + currentRoundAddress, + walletAddress + ) + + const hasUncommitted = hasUncommittedCart( + currentRoundAddress, + walletAddress + ) + + return !votedThisRound && !hasUncommitted + } + + async loadOrCreateEncryptionKey(): Promise { + let action = LOAD_OR_CREATE_ENCRYPTION_KEY + + if (await this.showPasskeyModal()) { + action = await new Promise((resolve) => { + this.$modal.show( + PasskeyModal, + { handleSelection: (selectedAction) => resolve(selectedAction) }, + {} + ) + }) + } + await this.$store.dispatch(action) + } + + async contribute() { + try { + if (!this.currentUser?.encryptionKey) { + await this.loadOrCreateEncryptionKey() + await this.$store.dispatch(LOAD_CART_DATA) + } + + // only save the item if we have the encryption key + if (this.currentUser?.encryptionKey) { + this.$store.commit(ADD_CART_ITEM, { + ...this.project, + amount: this.amount.toString(), + isCleared: false, + }) + this.$store.dispatch(SAVE_CART) + this.$store.commit(TOGGLE_EDIT_SELECTION, true) + } + } catch (error) { + this.$modal.show(ErrorModal, { error }, { width: 400, top: 20 }) + } } get isAmountValid(): boolean { diff --git a/vue-app/src/components/Cart.vue b/vue-app/src/components/Cart.vue index 92c3d1878..d3e91849d 100644 --- a/vue-app/src/components/Cart.vue +++ b/vue-app/src/components/Cart.vue @@ -5,6 +5,7 @@

{{ $t('cart.h3_1') }}

+
{{ $t('cart.span1') }} - {{ formatAmount(this.contribution) }} {{ tokenSymbol }} + {{ formatAmount(contribution) }} {{ tokenSymbol }}
{{ $t('cart.span2') }}
- ⚠️{{ formatAmount(getCartTotal(this.$store.state.cart)) }} + ⚠️{{ formatAmount(getCartTotal($store.state.cart)) }} {{ tokenSymbol }}
@@ -168,20 +169,18 @@
{{ $t('cart.div9') }}
- + {{ formatAmount(this.contribution) - formatAmount(getTotal()) }} + + {{ formatAmount(contribution.sub(getTotal())) }} {{ tokenSymbol }}
{{ $t('cart.span3') }} @@ -300,7 +299,7 @@
{{ formatAmount(getCartTotal(this.$store.state.cart)) }} / @@ -325,6 +324,7 @@ + + diff --git a/vue-app/src/components/PasskeyModal.vue b/vue-app/src/components/PasskeyModal.vue new file mode 100644 index 000000000..c88794b21 --- /dev/null +++ b/vue-app/src/components/PasskeyModal.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/vue-app/src/components/ReallocationModal.vue b/vue-app/src/components/ReallocationModal.vue index 9bbb9f76d..aaeee54af 100644 --- a/vue-app/src/components/ReallocationModal.vue +++ b/vue-app/src/components/ReallocationModal.vue @@ -23,12 +23,11 @@ import Vue from 'vue' import Component from 'vue-class-component' import { Prop } from 'vue-property-decorator' import { BigNumber, Contract } from 'ethers' -import { PubKey, Message } from 'maci-domainobjs' +import { PubKey, Message, createMessage } from '@clrfund/maci-utils' import Transaction from '@/components/Transaction.vue' import { SAVE_COMMITTED_CART_DISPATCH } from '@/store/action-types' import { waitForTransaction } from '@/utils/contracts' -import { createMessage } from '@/utils/maci' import { FundingRound } from '@/api/abi' diff --git a/vue-app/src/components/WalletModal.vue b/vue-app/src/components/WalletModal.vue index 37a7aa5a0..b387e216d 100644 --- a/vue-app/src/components/WalletModal.vue +++ b/vue-app/src/components/WalletModal.vue @@ -36,6 +36,8 @@ // Libraries import Vue from 'vue' import Component from 'vue-class-component' +import { SELECT_ROUND, LOAD_ROUND_INFO } from '@/store/action-types' +import { getCurrentRound } from '@/api/round' // Components import Loader from '@/components/Loader.vue' @@ -49,6 +51,14 @@ export default class WalletModal extends Vue { connectingWallet = false error = '' + async created() { + if (!this.$store.state.currentRoundAddress) { + const currentRoundAddress = await getCurrentRound() + await this.$store.dispatch(SELECT_ROUND, currentRoundAddress) + await this.$store.dispatch(LOAD_ROUND_INFO) + } + } + get windowEthereum(): any { return (window as any).ethereum } diff --git a/vue-app/src/graphql/API.ts b/vue-app/src/graphql/API.ts index 3de10e9d9..7a02af4d1 100644 --- a/vue-app/src/graphql/API.ts +++ b/vue-app/src/graphql/API.ts @@ -2,6 +2,7 @@ import { GraphQLClient } from 'graphql-request'; import * as Dom from 'graphql-request/dist/types.dom'; import gql from 'graphql-tag'; export type Maybe = T | null; +export type InputMaybe = Maybe; export type Exact = { [K in keyof T]: T[K] }; export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; @@ -17,1723 +18,1734 @@ export type Scalars = { Bytes: any; }; - - - - - export type BlockChangedFilter = { number_gte: Scalars['Int']; }; export type Block_Height = { - hash: Maybe; - number: Maybe; - number_gte: Maybe; + hash: InputMaybe; + number: InputMaybe; + number_gte: InputMaybe; }; - export type Contribution = { __typename?: 'Contribution'; - id: Scalars['ID']; + amount: Maybe; contributor: Maybe; + createdAt: Maybe; fundingRound: Maybe; - amount: Maybe; + id: Scalars['ID']; voiceCredits: Maybe; - createdAt: Maybe; }; export type Contribution_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - contributor: Maybe; - contributor_not: Maybe; - contributor_gt: Maybe; - contributor_lt: Maybe; - contributor_gte: Maybe; - contributor_lte: Maybe; - contributor_in: Maybe>; - contributor_not_in: Maybe>; - contributor_contains: Maybe; - contributor_contains_nocase: Maybe; - contributor_not_contains: Maybe; - contributor_not_contains_nocase: Maybe; - contributor_starts_with: Maybe; - contributor_starts_with_nocase: Maybe; - contributor_not_starts_with: Maybe; - contributor_not_starts_with_nocase: Maybe; - contributor_ends_with: Maybe; - contributor_ends_with_nocase: Maybe; - contributor_not_ends_with: Maybe; - contributor_not_ends_with_nocase: Maybe; - contributor_: Maybe; - fundingRound: Maybe; - fundingRound_not: Maybe; - fundingRound_gt: Maybe; - fundingRound_lt: Maybe; - fundingRound_gte: Maybe; - fundingRound_lte: Maybe; - fundingRound_in: Maybe>; - fundingRound_not_in: Maybe>; - fundingRound_contains: Maybe; - fundingRound_contains_nocase: Maybe; - fundingRound_not_contains: Maybe; - fundingRound_not_contains_nocase: Maybe; - fundingRound_starts_with: Maybe; - fundingRound_starts_with_nocase: Maybe; - fundingRound_not_starts_with: Maybe; - fundingRound_not_starts_with_nocase: Maybe; - fundingRound_ends_with: Maybe; - fundingRound_ends_with_nocase: Maybe; - fundingRound_not_ends_with: Maybe; - fundingRound_not_ends_with_nocase: Maybe; - fundingRound_: Maybe; - amount: Maybe; - amount_not: Maybe; - amount_gt: Maybe; - amount_lt: Maybe; - amount_gte: Maybe; - amount_lte: Maybe; - amount_in: Maybe>; - amount_not_in: Maybe>; - voiceCredits: Maybe; - voiceCredits_not: Maybe; - voiceCredits_gt: Maybe; - voiceCredits_lt: Maybe; - voiceCredits_gte: Maybe; - voiceCredits_lte: Maybe; - voiceCredits_in: Maybe>; - voiceCredits_not_in: Maybe>; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + amount: InputMaybe; + amount_gt: InputMaybe; + amount_gte: InputMaybe; + amount_in: InputMaybe>; + amount_lt: InputMaybe; + amount_lte: InputMaybe; + amount_not: InputMaybe; + amount_not_in: InputMaybe>; + and: InputMaybe>>; + contributor: InputMaybe; + contributor_: InputMaybe; + contributor_contains: InputMaybe; + contributor_contains_nocase: InputMaybe; + contributor_ends_with: InputMaybe; + contributor_ends_with_nocase: InputMaybe; + contributor_gt: InputMaybe; + contributor_gte: InputMaybe; + contributor_in: InputMaybe>; + contributor_lt: InputMaybe; + contributor_lte: InputMaybe; + contributor_not: InputMaybe; + contributor_not_contains: InputMaybe; + contributor_not_contains_nocase: InputMaybe; + contributor_not_ends_with: InputMaybe; + contributor_not_ends_with_nocase: InputMaybe; + contributor_not_in: InputMaybe>; + contributor_not_starts_with: InputMaybe; + contributor_not_starts_with_nocase: InputMaybe; + contributor_starts_with: InputMaybe; + contributor_starts_with_nocase: InputMaybe; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + fundingRound: InputMaybe; + fundingRound_: InputMaybe; + fundingRound_contains: InputMaybe; + fundingRound_contains_nocase: InputMaybe; + fundingRound_ends_with: InputMaybe; + fundingRound_ends_with_nocase: InputMaybe; + fundingRound_gt: InputMaybe; + fundingRound_gte: InputMaybe; + fundingRound_in: InputMaybe>; + fundingRound_lt: InputMaybe; + fundingRound_lte: InputMaybe; + fundingRound_not: InputMaybe; + fundingRound_not_contains: InputMaybe; + fundingRound_not_contains_nocase: InputMaybe; + fundingRound_not_ends_with: InputMaybe; + fundingRound_not_ends_with_nocase: InputMaybe; + fundingRound_not_in: InputMaybe>; + fundingRound_not_starts_with: InputMaybe; + fundingRound_not_starts_with_nocase: InputMaybe; + fundingRound_starts_with: InputMaybe; + fundingRound_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + or: InputMaybe>>; + voiceCredits: InputMaybe; + voiceCredits_gt: InputMaybe; + voiceCredits_gte: InputMaybe; + voiceCredits_in: InputMaybe>; + voiceCredits_lt: InputMaybe; + voiceCredits_lte: InputMaybe; + voiceCredits_not: InputMaybe; + voiceCredits_not_in: InputMaybe>; }; export enum Contribution_OrderBy { - Id = 'id', + Amount = 'amount', Contributor = 'contributor', - ContributorId = 'contributor__id', - ContributorVerifiedTimeStamp = 'contributor__verifiedTimeStamp', ContributorContributorAddress = 'contributor__contributorAddress', ContributorCreatedAt = 'contributor__createdAt', + ContributorId = 'contributor__id', ContributorLastUpdatedAt = 'contributor__lastUpdatedAt', + ContributorVerifiedTimeStamp = 'contributor__verifiedTimeStamp', + CreatedAt = 'createdAt', FundingRound = 'fundingRound', + FundingRoundContributorCount = 'fundingRound__contributorCount', + FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCreatedAt = 'fundingRound__createdAt', FundingRoundId = 'fundingRound__id', + FundingRoundIsCancelled = 'fundingRound__isCancelled', + FundingRoundIsFinalized = 'fundingRound__isFinalized', + FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', FundingRoundMaci = 'fundingRound__maci', - FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', - FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', FundingRoundNativeToken = 'fundingRound__nativeToken', - FundingRoundStartTime = 'fundingRound__startTime', - FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', - FundingRoundVotingDeadline = 'fundingRound__votingDeadline', - FundingRoundCoordinator = 'fundingRound__coordinator', - FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', - FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundRecipientCount = 'fundingRound__recipientCount', - FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', + FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', + FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', - FundingRoundIsFinalized = 'fundingRound__isFinalized', - FundingRoundIsCancelled = 'fundingRound__isCancelled', - FundingRoundTallyHash = 'fundingRound__tallyHash', - FundingRoundCreatedAt = 'fundingRound__createdAt', - FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', - Amount = 'amount', - VoiceCredits = 'voiceCredits', - CreatedAt = 'createdAt' + FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVotingDeadline = 'fundingRound__votingDeadline', + Id = 'id', + VoiceCredits = 'voiceCredits' } export type Contributor = { __typename?: 'Contributor'; - id: Scalars['ID']; - contributorRegistry: ContributorRegistry; - votes: Maybe>; - verifiedTimeStamp: Maybe; - contributorAddress: Maybe; - fundingRounds: Maybe>; contributions: Maybe>; + contributorAddress: Maybe; + contributorRegistry: ContributorRegistry; createdAt: Maybe; + fundingRounds: Maybe>; + id: Scalars['ID']; lastUpdatedAt: Maybe; + verifiedTimeStamp: Maybe; + votes: Maybe>; }; -export type ContributorVotesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; +export type ContributorContributionsArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type ContributorFundingRoundsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; -export type ContributorContributionsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; +export type ContributorVotesArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type ContributorRegistry = { __typename?: 'ContributorRegistry'; - id: Scalars['ID']; - fundingRoundFactory: FundingRoundFactory; context: Maybe; - owner: Maybe; contributors: Maybe>; createdAt: Maybe; + fundingRoundFactory: FundingRoundFactory; + id: Scalars['ID']; lastUpdatedAt: Maybe; + owner: Maybe; }; export type ContributorRegistryContributorsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type ContributorRegistry_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - fundingRoundFactory: Maybe; - fundingRoundFactory_not: Maybe; - fundingRoundFactory_gt: Maybe; - fundingRoundFactory_lt: Maybe; - fundingRoundFactory_gte: Maybe; - fundingRoundFactory_lte: Maybe; - fundingRoundFactory_in: Maybe>; - fundingRoundFactory_not_in: Maybe>; - fundingRoundFactory_contains: Maybe; - fundingRoundFactory_contains_nocase: Maybe; - fundingRoundFactory_not_contains: Maybe; - fundingRoundFactory_not_contains_nocase: Maybe; - fundingRoundFactory_starts_with: Maybe; - fundingRoundFactory_starts_with_nocase: Maybe; - fundingRoundFactory_not_starts_with: Maybe; - fundingRoundFactory_not_starts_with_nocase: Maybe; - fundingRoundFactory_ends_with: Maybe; - fundingRoundFactory_ends_with_nocase: Maybe; - fundingRoundFactory_not_ends_with: Maybe; - fundingRoundFactory_not_ends_with_nocase: Maybe; - fundingRoundFactory_: Maybe; - context: Maybe; - context_not: Maybe; - context_gt: Maybe; - context_lt: Maybe; - context_gte: Maybe; - context_lte: Maybe; - context_in: Maybe>; - context_not_in: Maybe>; - context_contains: Maybe; - context_contains_nocase: Maybe; - context_not_contains: Maybe; - context_not_contains_nocase: Maybe; - context_starts_with: Maybe; - context_starts_with_nocase: Maybe; - context_not_starts_with: Maybe; - context_not_starts_with_nocase: Maybe; - context_ends_with: Maybe; - context_ends_with_nocase: Maybe; - context_not_ends_with: Maybe; - context_not_ends_with_nocase: Maybe; - owner: Maybe; - owner_not: Maybe; - owner_gt: Maybe; - owner_lt: Maybe; - owner_gte: Maybe; - owner_lte: Maybe; - owner_in: Maybe>; - owner_not_in: Maybe>; - owner_contains: Maybe; - owner_not_contains: Maybe; - contributors_: Maybe; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; - lastUpdatedAt: Maybe; - lastUpdatedAt_not: Maybe; - lastUpdatedAt_gt: Maybe; - lastUpdatedAt_lt: Maybe; - lastUpdatedAt_gte: Maybe; - lastUpdatedAt_lte: Maybe; - lastUpdatedAt_in: Maybe>; - lastUpdatedAt_not_in: Maybe>; - lastUpdatedAt_contains: Maybe; - lastUpdatedAt_contains_nocase: Maybe; - lastUpdatedAt_not_contains: Maybe; - lastUpdatedAt_not_contains_nocase: Maybe; - lastUpdatedAt_starts_with: Maybe; - lastUpdatedAt_starts_with_nocase: Maybe; - lastUpdatedAt_not_starts_with: Maybe; - lastUpdatedAt_not_starts_with_nocase: Maybe; - lastUpdatedAt_ends_with: Maybe; - lastUpdatedAt_ends_with_nocase: Maybe; - lastUpdatedAt_not_ends_with: Maybe; - lastUpdatedAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + context: InputMaybe; + context_contains: InputMaybe; + context_contains_nocase: InputMaybe; + context_ends_with: InputMaybe; + context_ends_with_nocase: InputMaybe; + context_gt: InputMaybe; + context_gte: InputMaybe; + context_in: InputMaybe>; + context_lt: InputMaybe; + context_lte: InputMaybe; + context_not: InputMaybe; + context_not_contains: InputMaybe; + context_not_contains_nocase: InputMaybe; + context_not_ends_with: InputMaybe; + context_not_ends_with_nocase: InputMaybe; + context_not_in: InputMaybe>; + context_not_starts_with: InputMaybe; + context_not_starts_with_nocase: InputMaybe; + context_starts_with: InputMaybe; + context_starts_with_nocase: InputMaybe; + contributors_: InputMaybe; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + fundingRoundFactory: InputMaybe; + fundingRoundFactory_: InputMaybe; + fundingRoundFactory_contains: InputMaybe; + fundingRoundFactory_contains_nocase: InputMaybe; + fundingRoundFactory_ends_with: InputMaybe; + fundingRoundFactory_ends_with_nocase: InputMaybe; + fundingRoundFactory_gt: InputMaybe; + fundingRoundFactory_gte: InputMaybe; + fundingRoundFactory_in: InputMaybe>; + fundingRoundFactory_lt: InputMaybe; + fundingRoundFactory_lte: InputMaybe; + fundingRoundFactory_not: InputMaybe; + fundingRoundFactory_not_contains: InputMaybe; + fundingRoundFactory_not_contains_nocase: InputMaybe; + fundingRoundFactory_not_ends_with: InputMaybe; + fundingRoundFactory_not_ends_with_nocase: InputMaybe; + fundingRoundFactory_not_in: InputMaybe>; + fundingRoundFactory_not_starts_with: InputMaybe; + fundingRoundFactory_not_starts_with_nocase: InputMaybe; + fundingRoundFactory_starts_with: InputMaybe; + fundingRoundFactory_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + or: InputMaybe>>; + owner: InputMaybe; + owner_contains: InputMaybe; + owner_gt: InputMaybe; + owner_gte: InputMaybe; + owner_in: InputMaybe>; + owner_lt: InputMaybe; + owner_lte: InputMaybe; + owner_not: InputMaybe; + owner_not_contains: InputMaybe; + owner_not_in: InputMaybe>; }; export enum ContributorRegistry_OrderBy { - Id = 'id', + Context = 'context', + Contributors = 'contributors', + CreatedAt = 'createdAt', FundingRoundFactory = 'fundingRoundFactory', - FundingRoundFactoryId = 'fundingRoundFactory__id', - FundingRoundFactoryOwner = 'fundingRoundFactory__owner', - FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', - FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', + FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', FundingRoundFactoryContributorRegistryAddress = 'fundingRoundFactory__contributorRegistryAddress', - FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', - FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', + FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', FundingRoundFactoryCoordinatorPubKey = 'fundingRoundFactory__coordinatorPubKey', - FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', - FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', - FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', - FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', + FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', + FundingRoundFactoryId = 'fundingRoundFactory__id', + FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', + FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', + FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', + FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', + FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', FundingRoundFactoryMessageBatchSize = 'fundingRoundFactory__messageBatchSize', - FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', + FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', + FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', + FundingRoundFactoryOwner = 'fundingRoundFactory__owner', FundingRoundFactoryQvtVerifier = 'fundingRoundFactory__qvtVerifier', + FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', FundingRoundFactorySignUpDuration = 'fundingRoundFactory__signUpDuration', + FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', + FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', + FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', FundingRoundFactoryVotingDuration = 'fundingRoundFactory__votingDuration', - FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', - FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', - FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', - FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', - FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', - Context = 'context', - Owner = 'owner', - Contributors = 'contributors', - CreatedAt = 'createdAt', - LastUpdatedAt = 'lastUpdatedAt' + Id = 'id', + LastUpdatedAt = 'lastUpdatedAt', + Owner = 'owner' } export type Contributor_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - contributorRegistry: Maybe; - contributorRegistry_not: Maybe; - contributorRegistry_gt: Maybe; - contributorRegistry_lt: Maybe; - contributorRegistry_gte: Maybe; - contributorRegistry_lte: Maybe; - contributorRegistry_in: Maybe>; - contributorRegistry_not_in: Maybe>; - contributorRegistry_contains: Maybe; - contributorRegistry_contains_nocase: Maybe; - contributorRegistry_not_contains: Maybe; - contributorRegistry_not_contains_nocase: Maybe; - contributorRegistry_starts_with: Maybe; - contributorRegistry_starts_with_nocase: Maybe; - contributorRegistry_not_starts_with: Maybe; - contributorRegistry_not_starts_with_nocase: Maybe; - contributorRegistry_ends_with: Maybe; - contributorRegistry_ends_with_nocase: Maybe; - contributorRegistry_not_ends_with: Maybe; - contributorRegistry_not_ends_with_nocase: Maybe; - contributorRegistry_: Maybe; - votes_: Maybe; - verifiedTimeStamp: Maybe; - verifiedTimeStamp_not: Maybe; - verifiedTimeStamp_gt: Maybe; - verifiedTimeStamp_lt: Maybe; - verifiedTimeStamp_gte: Maybe; - verifiedTimeStamp_lte: Maybe; - verifiedTimeStamp_in: Maybe>; - verifiedTimeStamp_not_in: Maybe>; - verifiedTimeStamp_contains: Maybe; - verifiedTimeStamp_contains_nocase: Maybe; - verifiedTimeStamp_not_contains: Maybe; - verifiedTimeStamp_not_contains_nocase: Maybe; - verifiedTimeStamp_starts_with: Maybe; - verifiedTimeStamp_starts_with_nocase: Maybe; - verifiedTimeStamp_not_starts_with: Maybe; - verifiedTimeStamp_not_starts_with_nocase: Maybe; - verifiedTimeStamp_ends_with: Maybe; - verifiedTimeStamp_ends_with_nocase: Maybe; - verifiedTimeStamp_not_ends_with: Maybe; - verifiedTimeStamp_not_ends_with_nocase: Maybe; - contributorAddress: Maybe; - contributorAddress_not: Maybe; - contributorAddress_gt: Maybe; - contributorAddress_lt: Maybe; - contributorAddress_gte: Maybe; - contributorAddress_lte: Maybe; - contributorAddress_in: Maybe>; - contributorAddress_not_in: Maybe>; - contributorAddress_contains: Maybe; - contributorAddress_not_contains: Maybe; - fundingRounds: Maybe>; - fundingRounds_not: Maybe>; - fundingRounds_contains: Maybe>; - fundingRounds_contains_nocase: Maybe>; - fundingRounds_not_contains: Maybe>; - fundingRounds_not_contains_nocase: Maybe>; - fundingRounds_: Maybe; - contributions_: Maybe; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; - lastUpdatedAt: Maybe; - lastUpdatedAt_not: Maybe; - lastUpdatedAt_gt: Maybe; - lastUpdatedAt_lt: Maybe; - lastUpdatedAt_gte: Maybe; - lastUpdatedAt_lte: Maybe; - lastUpdatedAt_in: Maybe>; - lastUpdatedAt_not_in: Maybe>; - lastUpdatedAt_contains: Maybe; - lastUpdatedAt_contains_nocase: Maybe; - lastUpdatedAt_not_contains: Maybe; - lastUpdatedAt_not_contains_nocase: Maybe; - lastUpdatedAt_starts_with: Maybe; - lastUpdatedAt_starts_with_nocase: Maybe; - lastUpdatedAt_not_starts_with: Maybe; - lastUpdatedAt_not_starts_with_nocase: Maybe; - lastUpdatedAt_ends_with: Maybe; - lastUpdatedAt_ends_with_nocase: Maybe; - lastUpdatedAt_not_ends_with: Maybe; - lastUpdatedAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + contributions_: InputMaybe; + contributorAddress: InputMaybe; + contributorAddress_contains: InputMaybe; + contributorAddress_gt: InputMaybe; + contributorAddress_gte: InputMaybe; + contributorAddress_in: InputMaybe>; + contributorAddress_lt: InputMaybe; + contributorAddress_lte: InputMaybe; + contributorAddress_not: InputMaybe; + contributorAddress_not_contains: InputMaybe; + contributorAddress_not_in: InputMaybe>; + contributorRegistry: InputMaybe; + contributorRegistry_: InputMaybe; + contributorRegistry_contains: InputMaybe; + contributorRegistry_contains_nocase: InputMaybe; + contributorRegistry_ends_with: InputMaybe; + contributorRegistry_ends_with_nocase: InputMaybe; + contributorRegistry_gt: InputMaybe; + contributorRegistry_gte: InputMaybe; + contributorRegistry_in: InputMaybe>; + contributorRegistry_lt: InputMaybe; + contributorRegistry_lte: InputMaybe; + contributorRegistry_not: InputMaybe; + contributorRegistry_not_contains: InputMaybe; + contributorRegistry_not_contains_nocase: InputMaybe; + contributorRegistry_not_ends_with: InputMaybe; + contributorRegistry_not_ends_with_nocase: InputMaybe; + contributorRegistry_not_in: InputMaybe>; + contributorRegistry_not_starts_with: InputMaybe; + contributorRegistry_not_starts_with_nocase: InputMaybe; + contributorRegistry_starts_with: InputMaybe; + contributorRegistry_starts_with_nocase: InputMaybe; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + fundingRounds: InputMaybe>; + fundingRounds_: InputMaybe; + fundingRounds_contains: InputMaybe>; + fundingRounds_contains_nocase: InputMaybe>; + fundingRounds_not: InputMaybe>; + fundingRounds_not_contains: InputMaybe>; + fundingRounds_not_contains_nocase: InputMaybe>; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + or: InputMaybe>>; + verifiedTimeStamp: InputMaybe; + verifiedTimeStamp_contains: InputMaybe; + verifiedTimeStamp_contains_nocase: InputMaybe; + verifiedTimeStamp_ends_with: InputMaybe; + verifiedTimeStamp_ends_with_nocase: InputMaybe; + verifiedTimeStamp_gt: InputMaybe; + verifiedTimeStamp_gte: InputMaybe; + verifiedTimeStamp_in: InputMaybe>; + verifiedTimeStamp_lt: InputMaybe; + verifiedTimeStamp_lte: InputMaybe; + verifiedTimeStamp_not: InputMaybe; + verifiedTimeStamp_not_contains: InputMaybe; + verifiedTimeStamp_not_contains_nocase: InputMaybe; + verifiedTimeStamp_not_ends_with: InputMaybe; + verifiedTimeStamp_not_ends_with_nocase: InputMaybe; + verifiedTimeStamp_not_in: InputMaybe>; + verifiedTimeStamp_not_starts_with: InputMaybe; + verifiedTimeStamp_not_starts_with_nocase: InputMaybe; + verifiedTimeStamp_starts_with: InputMaybe; + verifiedTimeStamp_starts_with_nocase: InputMaybe; + votes_: InputMaybe; }; export enum Contributor_OrderBy { - Id = 'id', + Contributions = 'contributions', + ContributorAddress = 'contributorAddress', ContributorRegistry = 'contributorRegistry', - ContributorRegistryId = 'contributorRegistry__id', ContributorRegistryContext = 'contributorRegistry__context', - ContributorRegistryOwner = 'contributorRegistry__owner', ContributorRegistryCreatedAt = 'contributorRegistry__createdAt', + ContributorRegistryId = 'contributorRegistry__id', ContributorRegistryLastUpdatedAt = 'contributorRegistry__lastUpdatedAt', - Votes = 'votes', - VerifiedTimeStamp = 'verifiedTimeStamp', - ContributorAddress = 'contributorAddress', - FundingRounds = 'fundingRounds', - Contributions = 'contributions', + ContributorRegistryOwner = 'contributorRegistry__owner', CreatedAt = 'createdAt', - LastUpdatedAt = 'lastUpdatedAt' + FundingRounds = 'fundingRounds', + Id = 'id', + LastUpdatedAt = 'lastUpdatedAt', + VerifiedTimeStamp = 'verifiedTimeStamp', + Votes = 'votes' } export type Coordinator = { __typename?: 'Coordinator'; - id: Scalars['ID']; contact: Maybe; createdAt: Maybe; + id: Scalars['ID']; lastUpdatedAt: Maybe; }; export type Coordinator_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - contact: Maybe; - contact_not: Maybe; - contact_gt: Maybe; - contact_lt: Maybe; - contact_gte: Maybe; - contact_lte: Maybe; - contact_in: Maybe>; - contact_not_in: Maybe>; - contact_contains: Maybe; - contact_contains_nocase: Maybe; - contact_not_contains: Maybe; - contact_not_contains_nocase: Maybe; - contact_starts_with: Maybe; - contact_starts_with_nocase: Maybe; - contact_not_starts_with: Maybe; - contact_not_starts_with_nocase: Maybe; - contact_ends_with: Maybe; - contact_ends_with_nocase: Maybe; - contact_not_ends_with: Maybe; - contact_not_ends_with_nocase: Maybe; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; - lastUpdatedAt: Maybe; - lastUpdatedAt_not: Maybe; - lastUpdatedAt_gt: Maybe; - lastUpdatedAt_lt: Maybe; - lastUpdatedAt_gte: Maybe; - lastUpdatedAt_lte: Maybe; - lastUpdatedAt_in: Maybe>; - lastUpdatedAt_not_in: Maybe>; - lastUpdatedAt_contains: Maybe; - lastUpdatedAt_contains_nocase: Maybe; - lastUpdatedAt_not_contains: Maybe; - lastUpdatedAt_not_contains_nocase: Maybe; - lastUpdatedAt_starts_with: Maybe; - lastUpdatedAt_starts_with_nocase: Maybe; - lastUpdatedAt_not_starts_with: Maybe; - lastUpdatedAt_not_starts_with_nocase: Maybe; - lastUpdatedAt_ends_with: Maybe; - lastUpdatedAt_ends_with_nocase: Maybe; - lastUpdatedAt_not_ends_with: Maybe; - lastUpdatedAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + contact: InputMaybe; + contact_contains: InputMaybe; + contact_contains_nocase: InputMaybe; + contact_ends_with: InputMaybe; + contact_ends_with_nocase: InputMaybe; + contact_gt: InputMaybe; + contact_gte: InputMaybe; + contact_in: InputMaybe>; + contact_lt: InputMaybe; + contact_lte: InputMaybe; + contact_not: InputMaybe; + contact_not_contains: InputMaybe; + contact_not_contains_nocase: InputMaybe; + contact_not_ends_with: InputMaybe; + contact_not_ends_with_nocase: InputMaybe; + contact_not_in: InputMaybe>; + contact_not_starts_with: InputMaybe; + contact_not_starts_with_nocase: InputMaybe; + contact_starts_with: InputMaybe; + contact_starts_with_nocase: InputMaybe; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + or: InputMaybe>>; }; export enum Coordinator_OrderBy { - Id = 'id', Contact = 'contact', CreatedAt = 'createdAt', + Id = 'id', LastUpdatedAt = 'lastUpdatedAt' } export type Donation = { __typename?: 'Donation'; + amount: Maybe; + createdAt: Maybe; + fundingRound: Maybe; id: Scalars['ID']; recipient: Maybe; - fundingRound: Maybe; - amount: Maybe; voteOptionIndex: Maybe; - createdAt: Maybe; }; export type Donation_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - recipient: Maybe; - recipient_not: Maybe; - recipient_gt: Maybe; - recipient_lt: Maybe; - recipient_gte: Maybe; - recipient_lte: Maybe; - recipient_in: Maybe>; - recipient_not_in: Maybe>; - recipient_contains: Maybe; - recipient_not_contains: Maybe; - fundingRound: Maybe; - fundingRound_not: Maybe; - fundingRound_gt: Maybe; - fundingRound_lt: Maybe; - fundingRound_gte: Maybe; - fundingRound_lte: Maybe; - fundingRound_in: Maybe>; - fundingRound_not_in: Maybe>; - fundingRound_contains: Maybe; - fundingRound_contains_nocase: Maybe; - fundingRound_not_contains: Maybe; - fundingRound_not_contains_nocase: Maybe; - fundingRound_starts_with: Maybe; - fundingRound_starts_with_nocase: Maybe; - fundingRound_not_starts_with: Maybe; - fundingRound_not_starts_with_nocase: Maybe; - fundingRound_ends_with: Maybe; - fundingRound_ends_with_nocase: Maybe; - fundingRound_not_ends_with: Maybe; - fundingRound_not_ends_with_nocase: Maybe; - fundingRound_: Maybe; - amount: Maybe; - amount_not: Maybe; - amount_gt: Maybe; - amount_lt: Maybe; - amount_gte: Maybe; - amount_lte: Maybe; - amount_in: Maybe>; - amount_not_in: Maybe>; - voteOptionIndex: Maybe; - voteOptionIndex_not: Maybe; - voteOptionIndex_gt: Maybe; - voteOptionIndex_lt: Maybe; - voteOptionIndex_gte: Maybe; - voteOptionIndex_lte: Maybe; - voteOptionIndex_in: Maybe>; - voteOptionIndex_not_in: Maybe>; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + amount: InputMaybe; + amount_gt: InputMaybe; + amount_gte: InputMaybe; + amount_in: InputMaybe>; + amount_lt: InputMaybe; + amount_lte: InputMaybe; + amount_not: InputMaybe; + amount_not_in: InputMaybe>; + and: InputMaybe>>; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + fundingRound: InputMaybe; + fundingRound_: InputMaybe; + fundingRound_contains: InputMaybe; + fundingRound_contains_nocase: InputMaybe; + fundingRound_ends_with: InputMaybe; + fundingRound_ends_with_nocase: InputMaybe; + fundingRound_gt: InputMaybe; + fundingRound_gte: InputMaybe; + fundingRound_in: InputMaybe>; + fundingRound_lt: InputMaybe; + fundingRound_lte: InputMaybe; + fundingRound_not: InputMaybe; + fundingRound_not_contains: InputMaybe; + fundingRound_not_contains_nocase: InputMaybe; + fundingRound_not_ends_with: InputMaybe; + fundingRound_not_ends_with_nocase: InputMaybe; + fundingRound_not_in: InputMaybe>; + fundingRound_not_starts_with: InputMaybe; + fundingRound_not_starts_with_nocase: InputMaybe; + fundingRound_starts_with: InputMaybe; + fundingRound_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + or: InputMaybe>>; + recipient: InputMaybe; + recipient_contains: InputMaybe; + recipient_gt: InputMaybe; + recipient_gte: InputMaybe; + recipient_in: InputMaybe>; + recipient_lt: InputMaybe; + recipient_lte: InputMaybe; + recipient_not: InputMaybe; + recipient_not_contains: InputMaybe; + recipient_not_in: InputMaybe>; + voteOptionIndex: InputMaybe; + voteOptionIndex_gt: InputMaybe; + voteOptionIndex_gte: InputMaybe; + voteOptionIndex_in: InputMaybe>; + voteOptionIndex_lt: InputMaybe; + voteOptionIndex_lte: InputMaybe; + voteOptionIndex_not: InputMaybe; + voteOptionIndex_not_in: InputMaybe>; }; export enum Donation_OrderBy { - Id = 'id', - Recipient = 'recipient', - RecipientId = 'recipient__id', - RecipientRecipientIndex = 'recipient__recipientIndex', - RecipientRequestType = 'recipient__requestType', - RecipientRequester = 'recipient__requester', - RecipientSubmissionTime = 'recipient__submissionTime', - RecipientDeposit = 'recipient__deposit', - RecipientRecipientAddress = 'recipient__recipientAddress', - RecipientRecipientMetadata = 'recipient__recipientMetadata', - RecipientRejected = 'recipient__rejected', - RecipientVerified = 'recipient__verified', - RecipientVoteOptionIndex = 'recipient__voteOptionIndex', - RecipientRequestResolvedHash = 'recipient__requestResolvedHash', - RecipientRequestSubmittedHash = 'recipient__requestSubmittedHash', - RecipientCreatedAt = 'recipient__createdAt', - RecipientLastUpdatedAt = 'recipient__lastUpdatedAt', + Amount = 'amount', + CreatedAt = 'createdAt', FundingRound = 'fundingRound', + FundingRoundContributorCount = 'fundingRound__contributorCount', + FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCreatedAt = 'fundingRound__createdAt', FundingRoundId = 'fundingRound__id', + FundingRoundIsCancelled = 'fundingRound__isCancelled', + FundingRoundIsFinalized = 'fundingRound__isFinalized', + FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', FundingRoundMaci = 'fundingRound__maci', - FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', - FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', FundingRoundNativeToken = 'fundingRound__nativeToken', - FundingRoundStartTime = 'fundingRound__startTime', - FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', - FundingRoundVotingDeadline = 'fundingRound__votingDeadline', - FundingRoundCoordinator = 'fundingRound__coordinator', - FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', - FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundRecipientCount = 'fundingRound__recipientCount', - FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', + FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', + FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', - FundingRoundIsFinalized = 'fundingRound__isFinalized', - FundingRoundIsCancelled = 'fundingRound__isCancelled', - FundingRoundTallyHash = 'fundingRound__tallyHash', - FundingRoundCreatedAt = 'fundingRound__createdAt', - FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', - Amount = 'amount', - VoteOptionIndex = 'voteOptionIndex', - CreatedAt = 'createdAt' + FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVotingDeadline = 'fundingRound__votingDeadline', + Id = 'id', + Recipient = 'recipient', + VoteOptionIndex = 'voteOptionIndex' } export type FundingRound = { __typename?: 'FundingRound'; - id: Scalars['ID']; + contributions: Maybe>; + contributorCount: Scalars['BigInt']; + contributorRegistry: Maybe; + contributorRegistryAddress: Maybe; + contributors: Maybe>; + coordinator: Maybe; + createdAt: Maybe; fundingRoundFactory: Maybe; + id: Scalars['ID']; + isCancelled: Maybe; + isFinalized: Maybe; + lastUpdatedAt: Maybe; maci: Maybe; + matchingPoolSize: Maybe; messages: Maybe>; - recipientRegistry: Maybe; - recipientRegistryAddress: Maybe; - contributorRegistry: Maybe; - contributorRegistryAddress: Maybe; nativeToken: Maybe; nativeTokenInfo: Maybe; - startTime: Maybe; - signUpDeadline: Maybe; - votingDeadline: Maybe; - coordinator: Maybe; - voiceCreditFactor: Maybe; - contributorCount: Scalars['BigInt']; recipientCount: Scalars['BigInt']; - matchingPoolSize: Maybe; + recipientRegistry: Maybe; + recipientRegistryAddress: Maybe; + recipients: Maybe>; + signUpDeadline: Maybe; + startTime: Maybe; + tallyHash: Maybe; totalSpent: Maybe; totalVotes: Maybe; - isFinalized: Maybe; - isCancelled: Maybe; - tallyHash: Maybe; - recipients: Maybe>; - contributors: Maybe>; - contributions: Maybe>; + voiceCreditFactor: Maybe; votes: Maybe>; - createdAt: Maybe; - lastUpdatedAt: Maybe; + votingDeadline: Maybe; }; -export type FundingRoundMessagesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; +export type FundingRoundContributionsArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; -export type FundingRoundRecipientsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; +export type FundingRoundContributorsArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; -export type FundingRoundContributorsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; +export type FundingRoundMessagesArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; -export type FundingRoundContributionsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; +export type FundingRoundRecipientsArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type FundingRoundVotesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type FundingRoundFactory = { __typename?: 'FundingRoundFactory'; - id: Scalars['ID']; - owner: Maybe; - coordinator: Maybe; - nativeToken: Maybe; - nativeTokenInfo: Maybe; + batchUstVerifier: Maybe; contributorRegistry: Maybe; contributorRegistryAddress: Maybe; - recipientRegistry: Maybe; - recipientRegistryAddress: Maybe; + coordinator: Maybe; + coordinatorPubKey: Maybe; + createdAt: Maybe; currentRound: Maybe; + fundingRounds: Maybe>; + id: Scalars['ID']; + lastUpdatedAt: Maybe; maciFactory: Maybe; - coordinatorPubKey: Maybe; - stateTreeDepth: Maybe; - messageTreeDepth: Maybe; - voteOptionTreeDepth: Maybe; - tallyBatchSize: Maybe; + maxMessages: Maybe; + maxUsers: Maybe; + maxVoteOptions: Maybe; messageBatchSize: Maybe; - batchUstVerifier: Maybe; + messageTreeDepth: Maybe; + nativeToken: Maybe; + nativeTokenInfo: Maybe; + owner: Maybe; qvtVerifier: Maybe; + recipientRegistry: Maybe; + recipientRegistryAddress: Maybe; signUpDuration: Maybe; + stateTreeDepth: Maybe; + tallyBatchSize: Maybe; + voteOptionTreeDepth: Maybe; votingDuration: Maybe; - maxUsers: Maybe; - maxMessages: Maybe; - maxVoteOptions: Maybe; - fundingRounds: Maybe>; - createdAt: Maybe; - lastUpdatedAt: Maybe; }; export type FundingRoundFactoryFundingRoundsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type FundingRoundFactory_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - owner: Maybe; - owner_not: Maybe; - owner_gt: Maybe; - owner_lt: Maybe; - owner_gte: Maybe; - owner_lte: Maybe; - owner_in: Maybe>; - owner_not_in: Maybe>; - owner_contains: Maybe; - owner_not_contains: Maybe; - coordinator: Maybe; - coordinator_not: Maybe; - coordinator_gt: Maybe; - coordinator_lt: Maybe; - coordinator_gte: Maybe; - coordinator_lte: Maybe; - coordinator_in: Maybe>; - coordinator_not_in: Maybe>; - coordinator_contains: Maybe; - coordinator_not_contains: Maybe; - nativeToken: Maybe; - nativeToken_not: Maybe; - nativeToken_gt: Maybe; - nativeToken_lt: Maybe; - nativeToken_gte: Maybe; - nativeToken_lte: Maybe; - nativeToken_in: Maybe>; - nativeToken_not_in: Maybe>; - nativeToken_contains: Maybe; - nativeToken_not_contains: Maybe; - nativeTokenInfo: Maybe; - nativeTokenInfo_not: Maybe; - nativeTokenInfo_gt: Maybe; - nativeTokenInfo_lt: Maybe; - nativeTokenInfo_gte: Maybe; - nativeTokenInfo_lte: Maybe; - nativeTokenInfo_in: Maybe>; - nativeTokenInfo_not_in: Maybe>; - nativeTokenInfo_contains: Maybe; - nativeTokenInfo_contains_nocase: Maybe; - nativeTokenInfo_not_contains: Maybe; - nativeTokenInfo_not_contains_nocase: Maybe; - nativeTokenInfo_starts_with: Maybe; - nativeTokenInfo_starts_with_nocase: Maybe; - nativeTokenInfo_not_starts_with: Maybe; - nativeTokenInfo_not_starts_with_nocase: Maybe; - nativeTokenInfo_ends_with: Maybe; - nativeTokenInfo_ends_with_nocase: Maybe; - nativeTokenInfo_not_ends_with: Maybe; - nativeTokenInfo_not_ends_with_nocase: Maybe; - nativeTokenInfo_: Maybe; - contributorRegistry: Maybe; - contributorRegistry_not: Maybe; - contributorRegistry_gt: Maybe; - contributorRegistry_lt: Maybe; - contributorRegistry_gte: Maybe; - contributorRegistry_lte: Maybe; - contributorRegistry_in: Maybe>; - contributorRegistry_not_in: Maybe>; - contributorRegistry_contains: Maybe; - contributorRegistry_contains_nocase: Maybe; - contributorRegistry_not_contains: Maybe; - contributorRegistry_not_contains_nocase: Maybe; - contributorRegistry_starts_with: Maybe; - contributorRegistry_starts_with_nocase: Maybe; - contributorRegistry_not_starts_with: Maybe; - contributorRegistry_not_starts_with_nocase: Maybe; - contributorRegistry_ends_with: Maybe; - contributorRegistry_ends_with_nocase: Maybe; - contributorRegistry_not_ends_with: Maybe; - contributorRegistry_not_ends_with_nocase: Maybe; - contributorRegistry_: Maybe; - contributorRegistryAddress: Maybe; - contributorRegistryAddress_not: Maybe; - contributorRegistryAddress_gt: Maybe; - contributorRegistryAddress_lt: Maybe; - contributorRegistryAddress_gte: Maybe; - contributorRegistryAddress_lte: Maybe; - contributorRegistryAddress_in: Maybe>; - contributorRegistryAddress_not_in: Maybe>; - contributorRegistryAddress_contains: Maybe; - contributorRegistryAddress_not_contains: Maybe; - recipientRegistry: Maybe; - recipientRegistry_not: Maybe; - recipientRegistry_gt: Maybe; - recipientRegistry_lt: Maybe; - recipientRegistry_gte: Maybe; - recipientRegistry_lte: Maybe; - recipientRegistry_in: Maybe>; - recipientRegistry_not_in: Maybe>; - recipientRegistry_contains: Maybe; - recipientRegistry_contains_nocase: Maybe; - recipientRegistry_not_contains: Maybe; - recipientRegistry_not_contains_nocase: Maybe; - recipientRegistry_starts_with: Maybe; - recipientRegistry_starts_with_nocase: Maybe; - recipientRegistry_not_starts_with: Maybe; - recipientRegistry_not_starts_with_nocase: Maybe; - recipientRegistry_ends_with: Maybe; - recipientRegistry_ends_with_nocase: Maybe; - recipientRegistry_not_ends_with: Maybe; - recipientRegistry_not_ends_with_nocase: Maybe; - recipientRegistry_: Maybe; - recipientRegistryAddress: Maybe; - recipientRegistryAddress_not: Maybe; - recipientRegistryAddress_gt: Maybe; - recipientRegistryAddress_lt: Maybe; - recipientRegistryAddress_gte: Maybe; - recipientRegistryAddress_lte: Maybe; - recipientRegistryAddress_in: Maybe>; - recipientRegistryAddress_not_in: Maybe>; - recipientRegistryAddress_contains: Maybe; - recipientRegistryAddress_not_contains: Maybe; - currentRound: Maybe; - currentRound_not: Maybe; - currentRound_gt: Maybe; - currentRound_lt: Maybe; - currentRound_gte: Maybe; - currentRound_lte: Maybe; - currentRound_in: Maybe>; - currentRound_not_in: Maybe>; - currentRound_contains: Maybe; - currentRound_contains_nocase: Maybe; - currentRound_not_contains: Maybe; - currentRound_not_contains_nocase: Maybe; - currentRound_starts_with: Maybe; - currentRound_starts_with_nocase: Maybe; - currentRound_not_starts_with: Maybe; - currentRound_not_starts_with_nocase: Maybe; - currentRound_ends_with: Maybe; - currentRound_ends_with_nocase: Maybe; - currentRound_not_ends_with: Maybe; - currentRound_not_ends_with_nocase: Maybe; - currentRound_: Maybe; - maciFactory: Maybe; - maciFactory_not: Maybe; - maciFactory_gt: Maybe; - maciFactory_lt: Maybe; - maciFactory_gte: Maybe; - maciFactory_lte: Maybe; - maciFactory_in: Maybe>; - maciFactory_not_in: Maybe>; - maciFactory_contains: Maybe; - maciFactory_not_contains: Maybe; - coordinatorPubKey: Maybe; - coordinatorPubKey_not: Maybe; - coordinatorPubKey_gt: Maybe; - coordinatorPubKey_lt: Maybe; - coordinatorPubKey_gte: Maybe; - coordinatorPubKey_lte: Maybe; - coordinatorPubKey_in: Maybe>; - coordinatorPubKey_not_in: Maybe>; - coordinatorPubKey_contains: Maybe; - coordinatorPubKey_contains_nocase: Maybe; - coordinatorPubKey_not_contains: Maybe; - coordinatorPubKey_not_contains_nocase: Maybe; - coordinatorPubKey_starts_with: Maybe; - coordinatorPubKey_starts_with_nocase: Maybe; - coordinatorPubKey_not_starts_with: Maybe; - coordinatorPubKey_not_starts_with_nocase: Maybe; - coordinatorPubKey_ends_with: Maybe; - coordinatorPubKey_ends_with_nocase: Maybe; - coordinatorPubKey_not_ends_with: Maybe; - coordinatorPubKey_not_ends_with_nocase: Maybe; - stateTreeDepth: Maybe; - stateTreeDepth_not: Maybe; - stateTreeDepth_gt: Maybe; - stateTreeDepth_lt: Maybe; - stateTreeDepth_gte: Maybe; - stateTreeDepth_lte: Maybe; - stateTreeDepth_in: Maybe>; - stateTreeDepth_not_in: Maybe>; - messageTreeDepth: Maybe; - messageTreeDepth_not: Maybe; - messageTreeDepth_gt: Maybe; - messageTreeDepth_lt: Maybe; - messageTreeDepth_gte: Maybe; - messageTreeDepth_lte: Maybe; - messageTreeDepth_in: Maybe>; - messageTreeDepth_not_in: Maybe>; - voteOptionTreeDepth: Maybe; - voteOptionTreeDepth_not: Maybe; - voteOptionTreeDepth_gt: Maybe; - voteOptionTreeDepth_lt: Maybe; - voteOptionTreeDepth_gte: Maybe; - voteOptionTreeDepth_lte: Maybe; - voteOptionTreeDepth_in: Maybe>; - voteOptionTreeDepth_not_in: Maybe>; - tallyBatchSize: Maybe; - tallyBatchSize_not: Maybe; - tallyBatchSize_gt: Maybe; - tallyBatchSize_lt: Maybe; - tallyBatchSize_gte: Maybe; - tallyBatchSize_lte: Maybe; - tallyBatchSize_in: Maybe>; - tallyBatchSize_not_in: Maybe>; - messageBatchSize: Maybe; - messageBatchSize_not: Maybe; - messageBatchSize_gt: Maybe; - messageBatchSize_lt: Maybe; - messageBatchSize_gte: Maybe; - messageBatchSize_lte: Maybe; - messageBatchSize_in: Maybe>; - messageBatchSize_not_in: Maybe>; - batchUstVerifier: Maybe; - batchUstVerifier_not: Maybe; - batchUstVerifier_gt: Maybe; - batchUstVerifier_lt: Maybe; - batchUstVerifier_gte: Maybe; - batchUstVerifier_lte: Maybe; - batchUstVerifier_in: Maybe>; - batchUstVerifier_not_in: Maybe>; - batchUstVerifier_contains: Maybe; - batchUstVerifier_not_contains: Maybe; - qvtVerifier: Maybe; - qvtVerifier_not: Maybe; - qvtVerifier_gt: Maybe; - qvtVerifier_lt: Maybe; - qvtVerifier_gte: Maybe; - qvtVerifier_lte: Maybe; - qvtVerifier_in: Maybe>; - qvtVerifier_not_in: Maybe>; - qvtVerifier_contains: Maybe; - qvtVerifier_not_contains: Maybe; - signUpDuration: Maybe; - signUpDuration_not: Maybe; - signUpDuration_gt: Maybe; - signUpDuration_lt: Maybe; - signUpDuration_gte: Maybe; - signUpDuration_lte: Maybe; - signUpDuration_in: Maybe>; - signUpDuration_not_in: Maybe>; - votingDuration: Maybe; - votingDuration_not: Maybe; - votingDuration_gt: Maybe; - votingDuration_lt: Maybe; - votingDuration_gte: Maybe; - votingDuration_lte: Maybe; - votingDuration_in: Maybe>; - votingDuration_not_in: Maybe>; - maxUsers: Maybe; - maxUsers_not: Maybe; - maxUsers_gt: Maybe; - maxUsers_lt: Maybe; - maxUsers_gte: Maybe; - maxUsers_lte: Maybe; - maxUsers_in: Maybe>; - maxUsers_not_in: Maybe>; - maxMessages: Maybe; - maxMessages_not: Maybe; - maxMessages_gt: Maybe; - maxMessages_lt: Maybe; - maxMessages_gte: Maybe; - maxMessages_lte: Maybe; - maxMessages_in: Maybe>; - maxMessages_not_in: Maybe>; - maxVoteOptions: Maybe; - maxVoteOptions_not: Maybe; - maxVoteOptions_gt: Maybe; - maxVoteOptions_lt: Maybe; - maxVoteOptions_gte: Maybe; - maxVoteOptions_lte: Maybe; - maxVoteOptions_in: Maybe>; - maxVoteOptions_not_in: Maybe>; - fundingRounds_: Maybe; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; - lastUpdatedAt: Maybe; - lastUpdatedAt_not: Maybe; - lastUpdatedAt_gt: Maybe; - lastUpdatedAt_lt: Maybe; - lastUpdatedAt_gte: Maybe; - lastUpdatedAt_lte: Maybe; - lastUpdatedAt_in: Maybe>; - lastUpdatedAt_not_in: Maybe>; - lastUpdatedAt_contains: Maybe; - lastUpdatedAt_contains_nocase: Maybe; - lastUpdatedAt_not_contains: Maybe; - lastUpdatedAt_not_contains_nocase: Maybe; - lastUpdatedAt_starts_with: Maybe; - lastUpdatedAt_starts_with_nocase: Maybe; - lastUpdatedAt_not_starts_with: Maybe; - lastUpdatedAt_not_starts_with_nocase: Maybe; - lastUpdatedAt_ends_with: Maybe; - lastUpdatedAt_ends_with_nocase: Maybe; - lastUpdatedAt_not_ends_with: Maybe; - lastUpdatedAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + batchUstVerifier: InputMaybe; + batchUstVerifier_contains: InputMaybe; + batchUstVerifier_gt: InputMaybe; + batchUstVerifier_gte: InputMaybe; + batchUstVerifier_in: InputMaybe>; + batchUstVerifier_lt: InputMaybe; + batchUstVerifier_lte: InputMaybe; + batchUstVerifier_not: InputMaybe; + batchUstVerifier_not_contains: InputMaybe; + batchUstVerifier_not_in: InputMaybe>; + contributorRegistry: InputMaybe; + contributorRegistryAddress: InputMaybe; + contributorRegistryAddress_contains: InputMaybe; + contributorRegistryAddress_gt: InputMaybe; + contributorRegistryAddress_gte: InputMaybe; + contributorRegistryAddress_in: InputMaybe>; + contributorRegistryAddress_lt: InputMaybe; + contributorRegistryAddress_lte: InputMaybe; + contributorRegistryAddress_not: InputMaybe; + contributorRegistryAddress_not_contains: InputMaybe; + contributorRegistryAddress_not_in: InputMaybe>; + contributorRegistry_: InputMaybe; + contributorRegistry_contains: InputMaybe; + contributorRegistry_contains_nocase: InputMaybe; + contributorRegistry_ends_with: InputMaybe; + contributorRegistry_ends_with_nocase: InputMaybe; + contributorRegistry_gt: InputMaybe; + contributorRegistry_gte: InputMaybe; + contributorRegistry_in: InputMaybe>; + contributorRegistry_lt: InputMaybe; + contributorRegistry_lte: InputMaybe; + contributorRegistry_not: InputMaybe; + contributorRegistry_not_contains: InputMaybe; + contributorRegistry_not_contains_nocase: InputMaybe; + contributorRegistry_not_ends_with: InputMaybe; + contributorRegistry_not_ends_with_nocase: InputMaybe; + contributorRegistry_not_in: InputMaybe>; + contributorRegistry_not_starts_with: InputMaybe; + contributorRegistry_not_starts_with_nocase: InputMaybe; + contributorRegistry_starts_with: InputMaybe; + contributorRegistry_starts_with_nocase: InputMaybe; + coordinator: InputMaybe; + coordinatorPubKey: InputMaybe; + coordinatorPubKey_contains: InputMaybe; + coordinatorPubKey_contains_nocase: InputMaybe; + coordinatorPubKey_ends_with: InputMaybe; + coordinatorPubKey_ends_with_nocase: InputMaybe; + coordinatorPubKey_gt: InputMaybe; + coordinatorPubKey_gte: InputMaybe; + coordinatorPubKey_in: InputMaybe>; + coordinatorPubKey_lt: InputMaybe; + coordinatorPubKey_lte: InputMaybe; + coordinatorPubKey_not: InputMaybe; + coordinatorPubKey_not_contains: InputMaybe; + coordinatorPubKey_not_contains_nocase: InputMaybe; + coordinatorPubKey_not_ends_with: InputMaybe; + coordinatorPubKey_not_ends_with_nocase: InputMaybe; + coordinatorPubKey_not_in: InputMaybe>; + coordinatorPubKey_not_starts_with: InputMaybe; + coordinatorPubKey_not_starts_with_nocase: InputMaybe; + coordinatorPubKey_starts_with: InputMaybe; + coordinatorPubKey_starts_with_nocase: InputMaybe; + coordinator_contains: InputMaybe; + coordinator_gt: InputMaybe; + coordinator_gte: InputMaybe; + coordinator_in: InputMaybe>; + coordinator_lt: InputMaybe; + coordinator_lte: InputMaybe; + coordinator_not: InputMaybe; + coordinator_not_contains: InputMaybe; + coordinator_not_in: InputMaybe>; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + currentRound: InputMaybe; + currentRound_: InputMaybe; + currentRound_contains: InputMaybe; + currentRound_contains_nocase: InputMaybe; + currentRound_ends_with: InputMaybe; + currentRound_ends_with_nocase: InputMaybe; + currentRound_gt: InputMaybe; + currentRound_gte: InputMaybe; + currentRound_in: InputMaybe>; + currentRound_lt: InputMaybe; + currentRound_lte: InputMaybe; + currentRound_not: InputMaybe; + currentRound_not_contains: InputMaybe; + currentRound_not_contains_nocase: InputMaybe; + currentRound_not_ends_with: InputMaybe; + currentRound_not_ends_with_nocase: InputMaybe; + currentRound_not_in: InputMaybe>; + currentRound_not_starts_with: InputMaybe; + currentRound_not_starts_with_nocase: InputMaybe; + currentRound_starts_with: InputMaybe; + currentRound_starts_with_nocase: InputMaybe; + fundingRounds_: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + maciFactory: InputMaybe; + maciFactory_contains: InputMaybe; + maciFactory_gt: InputMaybe; + maciFactory_gte: InputMaybe; + maciFactory_in: InputMaybe>; + maciFactory_lt: InputMaybe; + maciFactory_lte: InputMaybe; + maciFactory_not: InputMaybe; + maciFactory_not_contains: InputMaybe; + maciFactory_not_in: InputMaybe>; + maxMessages: InputMaybe; + maxMessages_gt: InputMaybe; + maxMessages_gte: InputMaybe; + maxMessages_in: InputMaybe>; + maxMessages_lt: InputMaybe; + maxMessages_lte: InputMaybe; + maxMessages_not: InputMaybe; + maxMessages_not_in: InputMaybe>; + maxUsers: InputMaybe; + maxUsers_gt: InputMaybe; + maxUsers_gte: InputMaybe; + maxUsers_in: InputMaybe>; + maxUsers_lt: InputMaybe; + maxUsers_lte: InputMaybe; + maxUsers_not: InputMaybe; + maxUsers_not_in: InputMaybe>; + maxVoteOptions: InputMaybe; + maxVoteOptions_gt: InputMaybe; + maxVoteOptions_gte: InputMaybe; + maxVoteOptions_in: InputMaybe>; + maxVoteOptions_lt: InputMaybe; + maxVoteOptions_lte: InputMaybe; + maxVoteOptions_not: InputMaybe; + maxVoteOptions_not_in: InputMaybe>; + messageBatchSize: InputMaybe; + messageBatchSize_gt: InputMaybe; + messageBatchSize_gte: InputMaybe; + messageBatchSize_in: InputMaybe>; + messageBatchSize_lt: InputMaybe; + messageBatchSize_lte: InputMaybe; + messageBatchSize_not: InputMaybe; + messageBatchSize_not_in: InputMaybe>; + messageTreeDepth: InputMaybe; + messageTreeDepth_gt: InputMaybe; + messageTreeDepth_gte: InputMaybe; + messageTreeDepth_in: InputMaybe>; + messageTreeDepth_lt: InputMaybe; + messageTreeDepth_lte: InputMaybe; + messageTreeDepth_not: InputMaybe; + messageTreeDepth_not_in: InputMaybe>; + nativeToken: InputMaybe; + nativeTokenInfo: InputMaybe; + nativeTokenInfo_: InputMaybe; + nativeTokenInfo_contains: InputMaybe; + nativeTokenInfo_contains_nocase: InputMaybe; + nativeTokenInfo_ends_with: InputMaybe; + nativeTokenInfo_ends_with_nocase: InputMaybe; + nativeTokenInfo_gt: InputMaybe; + nativeTokenInfo_gte: InputMaybe; + nativeTokenInfo_in: InputMaybe>; + nativeTokenInfo_lt: InputMaybe; + nativeTokenInfo_lte: InputMaybe; + nativeTokenInfo_not: InputMaybe; + nativeTokenInfo_not_contains: InputMaybe; + nativeTokenInfo_not_contains_nocase: InputMaybe; + nativeTokenInfo_not_ends_with: InputMaybe; + nativeTokenInfo_not_ends_with_nocase: InputMaybe; + nativeTokenInfo_not_in: InputMaybe>; + nativeTokenInfo_not_starts_with: InputMaybe; + nativeTokenInfo_not_starts_with_nocase: InputMaybe; + nativeTokenInfo_starts_with: InputMaybe; + nativeTokenInfo_starts_with_nocase: InputMaybe; + nativeToken_contains: InputMaybe; + nativeToken_gt: InputMaybe; + nativeToken_gte: InputMaybe; + nativeToken_in: InputMaybe>; + nativeToken_lt: InputMaybe; + nativeToken_lte: InputMaybe; + nativeToken_not: InputMaybe; + nativeToken_not_contains: InputMaybe; + nativeToken_not_in: InputMaybe>; + or: InputMaybe>>; + owner: InputMaybe; + owner_contains: InputMaybe; + owner_gt: InputMaybe; + owner_gte: InputMaybe; + owner_in: InputMaybe>; + owner_lt: InputMaybe; + owner_lte: InputMaybe; + owner_not: InputMaybe; + owner_not_contains: InputMaybe; + owner_not_in: InputMaybe>; + qvtVerifier: InputMaybe; + qvtVerifier_contains: InputMaybe; + qvtVerifier_gt: InputMaybe; + qvtVerifier_gte: InputMaybe; + qvtVerifier_in: InputMaybe>; + qvtVerifier_lt: InputMaybe; + qvtVerifier_lte: InputMaybe; + qvtVerifier_not: InputMaybe; + qvtVerifier_not_contains: InputMaybe; + qvtVerifier_not_in: InputMaybe>; + recipientRegistry: InputMaybe; + recipientRegistryAddress: InputMaybe; + recipientRegistryAddress_contains: InputMaybe; + recipientRegistryAddress_gt: InputMaybe; + recipientRegistryAddress_gte: InputMaybe; + recipientRegistryAddress_in: InputMaybe>; + recipientRegistryAddress_lt: InputMaybe; + recipientRegistryAddress_lte: InputMaybe; + recipientRegistryAddress_not: InputMaybe; + recipientRegistryAddress_not_contains: InputMaybe; + recipientRegistryAddress_not_in: InputMaybe>; + recipientRegistry_: InputMaybe; + recipientRegistry_contains: InputMaybe; + recipientRegistry_contains_nocase: InputMaybe; + recipientRegistry_ends_with: InputMaybe; + recipientRegistry_ends_with_nocase: InputMaybe; + recipientRegistry_gt: InputMaybe; + recipientRegistry_gte: InputMaybe; + recipientRegistry_in: InputMaybe>; + recipientRegistry_lt: InputMaybe; + recipientRegistry_lte: InputMaybe; + recipientRegistry_not: InputMaybe; + recipientRegistry_not_contains: InputMaybe; + recipientRegistry_not_contains_nocase: InputMaybe; + recipientRegistry_not_ends_with: InputMaybe; + recipientRegistry_not_ends_with_nocase: InputMaybe; + recipientRegistry_not_in: InputMaybe>; + recipientRegistry_not_starts_with: InputMaybe; + recipientRegistry_not_starts_with_nocase: InputMaybe; + recipientRegistry_starts_with: InputMaybe; + recipientRegistry_starts_with_nocase: InputMaybe; + signUpDuration: InputMaybe; + signUpDuration_gt: InputMaybe; + signUpDuration_gte: InputMaybe; + signUpDuration_in: InputMaybe>; + signUpDuration_lt: InputMaybe; + signUpDuration_lte: InputMaybe; + signUpDuration_not: InputMaybe; + signUpDuration_not_in: InputMaybe>; + stateTreeDepth: InputMaybe; + stateTreeDepth_gt: InputMaybe; + stateTreeDepth_gte: InputMaybe; + stateTreeDepth_in: InputMaybe>; + stateTreeDepth_lt: InputMaybe; + stateTreeDepth_lte: InputMaybe; + stateTreeDepth_not: InputMaybe; + stateTreeDepth_not_in: InputMaybe>; + tallyBatchSize: InputMaybe; + tallyBatchSize_gt: InputMaybe; + tallyBatchSize_gte: InputMaybe; + tallyBatchSize_in: InputMaybe>; + tallyBatchSize_lt: InputMaybe; + tallyBatchSize_lte: InputMaybe; + tallyBatchSize_not: InputMaybe; + tallyBatchSize_not_in: InputMaybe>; + voteOptionTreeDepth: InputMaybe; + voteOptionTreeDepth_gt: InputMaybe; + voteOptionTreeDepth_gte: InputMaybe; + voteOptionTreeDepth_in: InputMaybe>; + voteOptionTreeDepth_lt: InputMaybe; + voteOptionTreeDepth_lte: InputMaybe; + voteOptionTreeDepth_not: InputMaybe; + voteOptionTreeDepth_not_in: InputMaybe>; + votingDuration: InputMaybe; + votingDuration_gt: InputMaybe; + votingDuration_gte: InputMaybe; + votingDuration_in: InputMaybe>; + votingDuration_lt: InputMaybe; + votingDuration_lte: InputMaybe; + votingDuration_not: InputMaybe; + votingDuration_not_in: InputMaybe>; }; export enum FundingRoundFactory_OrderBy { - Id = 'id', - Owner = 'owner', - Coordinator = 'coordinator', - NativeToken = 'nativeToken', - NativeTokenInfo = 'nativeTokenInfo', - NativeTokenInfoId = 'nativeTokenInfo__id', - NativeTokenInfoTokenAddress = 'nativeTokenInfo__tokenAddress', - NativeTokenInfoSymbol = 'nativeTokenInfo__symbol', - NativeTokenInfoDecimals = 'nativeTokenInfo__decimals', - NativeTokenInfoCreatedAt = 'nativeTokenInfo__createdAt', - NativeTokenInfoLastUpdatedAt = 'nativeTokenInfo__lastUpdatedAt', + BatchUstVerifier = 'batchUstVerifier', ContributorRegistry = 'contributorRegistry', - ContributorRegistryId = 'contributorRegistry__id', + ContributorRegistryAddress = 'contributorRegistryAddress', ContributorRegistryContext = 'contributorRegistry__context', - ContributorRegistryOwner = 'contributorRegistry__owner', ContributorRegistryCreatedAt = 'contributorRegistry__createdAt', + ContributorRegistryId = 'contributorRegistry__id', ContributorRegistryLastUpdatedAt = 'contributorRegistry__lastUpdatedAt', - ContributorRegistryAddress = 'contributorRegistryAddress', - RecipientRegistry = 'recipientRegistry', - RecipientRegistryId = 'recipientRegistry__id', - RecipientRegistryBaseDeposit = 'recipientRegistry__baseDeposit', - RecipientRegistryChallengePeriodDuration = 'recipientRegistry__challengePeriodDuration', - RecipientRegistryController = 'recipientRegistry__controller', - RecipientRegistryMaxRecipients = 'recipientRegistry__maxRecipients', - RecipientRegistryOwner = 'recipientRegistry__owner', - RecipientRegistryCreatedAt = 'recipientRegistry__createdAt', - RecipientRegistryLastUpdatedAt = 'recipientRegistry__lastUpdatedAt', - RecipientRegistryAddress = 'recipientRegistryAddress', + ContributorRegistryOwner = 'contributorRegistry__owner', + Coordinator = 'coordinator', + CoordinatorPubKey = 'coordinatorPubKey', + CreatedAt = 'createdAt', CurrentRound = 'currentRound', + CurrentRoundContributorCount = 'currentRound__contributorCount', + CurrentRoundContributorRegistryAddress = 'currentRound__contributorRegistryAddress', + CurrentRoundCoordinator = 'currentRound__coordinator', + CurrentRoundCreatedAt = 'currentRound__createdAt', CurrentRoundId = 'currentRound__id', + CurrentRoundIsCancelled = 'currentRound__isCancelled', + CurrentRoundIsFinalized = 'currentRound__isFinalized', + CurrentRoundLastUpdatedAt = 'currentRound__lastUpdatedAt', CurrentRoundMaci = 'currentRound__maci', - CurrentRoundRecipientRegistryAddress = 'currentRound__recipientRegistryAddress', - CurrentRoundContributorRegistryAddress = 'currentRound__contributorRegistryAddress', + CurrentRoundMatchingPoolSize = 'currentRound__matchingPoolSize', CurrentRoundNativeToken = 'currentRound__nativeToken', - CurrentRoundStartTime = 'currentRound__startTime', - CurrentRoundSignUpDeadline = 'currentRound__signUpDeadline', - CurrentRoundVotingDeadline = 'currentRound__votingDeadline', - CurrentRoundCoordinator = 'currentRound__coordinator', - CurrentRoundVoiceCreditFactor = 'currentRound__voiceCreditFactor', - CurrentRoundContributorCount = 'currentRound__contributorCount', CurrentRoundRecipientCount = 'currentRound__recipientCount', - CurrentRoundMatchingPoolSize = 'currentRound__matchingPoolSize', + CurrentRoundRecipientRegistryAddress = 'currentRound__recipientRegistryAddress', + CurrentRoundSignUpDeadline = 'currentRound__signUpDeadline', + CurrentRoundStartTime = 'currentRound__startTime', + CurrentRoundTallyHash = 'currentRound__tallyHash', CurrentRoundTotalSpent = 'currentRound__totalSpent', CurrentRoundTotalVotes = 'currentRound__totalVotes', - CurrentRoundIsFinalized = 'currentRound__isFinalized', - CurrentRoundIsCancelled = 'currentRound__isCancelled', - CurrentRoundTallyHash = 'currentRound__tallyHash', - CurrentRoundCreatedAt = 'currentRound__createdAt', - CurrentRoundLastUpdatedAt = 'currentRound__lastUpdatedAt', + CurrentRoundVoiceCreditFactor = 'currentRound__voiceCreditFactor', + CurrentRoundVotingDeadline = 'currentRound__votingDeadline', + FundingRounds = 'fundingRounds', + Id = 'id', + LastUpdatedAt = 'lastUpdatedAt', MaciFactory = 'maciFactory', - CoordinatorPubKey = 'coordinatorPubKey', - StateTreeDepth = 'stateTreeDepth', - MessageTreeDepth = 'messageTreeDepth', - VoteOptionTreeDepth = 'voteOptionTreeDepth', - TallyBatchSize = 'tallyBatchSize', + MaxMessages = 'maxMessages', + MaxUsers = 'maxUsers', + MaxVoteOptions = 'maxVoteOptions', MessageBatchSize = 'messageBatchSize', - BatchUstVerifier = 'batchUstVerifier', + MessageTreeDepth = 'messageTreeDepth', + NativeToken = 'nativeToken', + NativeTokenInfo = 'nativeTokenInfo', + NativeTokenInfoCreatedAt = 'nativeTokenInfo__createdAt', + NativeTokenInfoDecimals = 'nativeTokenInfo__decimals', + NativeTokenInfoId = 'nativeTokenInfo__id', + NativeTokenInfoLastUpdatedAt = 'nativeTokenInfo__lastUpdatedAt', + NativeTokenInfoSymbol = 'nativeTokenInfo__symbol', + NativeTokenInfoTokenAddress = 'nativeTokenInfo__tokenAddress', + Owner = 'owner', QvtVerifier = 'qvtVerifier', + RecipientRegistry = 'recipientRegistry', + RecipientRegistryAddress = 'recipientRegistryAddress', + RecipientRegistryBaseDeposit = 'recipientRegistry__baseDeposit', + RecipientRegistryChallengePeriodDuration = 'recipientRegistry__challengePeriodDuration', + RecipientRegistryController = 'recipientRegistry__controller', + RecipientRegistryCreatedAt = 'recipientRegistry__createdAt', + RecipientRegistryId = 'recipientRegistry__id', + RecipientRegistryLastUpdatedAt = 'recipientRegistry__lastUpdatedAt', + RecipientRegistryMaxRecipients = 'recipientRegistry__maxRecipients', + RecipientRegistryOwner = 'recipientRegistry__owner', SignUpDuration = 'signUpDuration', - VotingDuration = 'votingDuration', - MaxUsers = 'maxUsers', - MaxMessages = 'maxMessages', - MaxVoteOptions = 'maxVoteOptions', - FundingRounds = 'fundingRounds', - CreatedAt = 'createdAt', - LastUpdatedAt = 'lastUpdatedAt' + StateTreeDepth = 'stateTreeDepth', + TallyBatchSize = 'tallyBatchSize', + VoteOptionTreeDepth = 'voteOptionTreeDepth', + VotingDuration = 'votingDuration' } export type FundingRound_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - fundingRoundFactory: Maybe; - fundingRoundFactory_not: Maybe; - fundingRoundFactory_gt: Maybe; - fundingRoundFactory_lt: Maybe; - fundingRoundFactory_gte: Maybe; - fundingRoundFactory_lte: Maybe; - fundingRoundFactory_in: Maybe>; - fundingRoundFactory_not_in: Maybe>; - fundingRoundFactory_contains: Maybe; - fundingRoundFactory_contains_nocase: Maybe; - fundingRoundFactory_not_contains: Maybe; - fundingRoundFactory_not_contains_nocase: Maybe; - fundingRoundFactory_starts_with: Maybe; - fundingRoundFactory_starts_with_nocase: Maybe; - fundingRoundFactory_not_starts_with: Maybe; - fundingRoundFactory_not_starts_with_nocase: Maybe; - fundingRoundFactory_ends_with: Maybe; - fundingRoundFactory_ends_with_nocase: Maybe; - fundingRoundFactory_not_ends_with: Maybe; - fundingRoundFactory_not_ends_with_nocase: Maybe; - fundingRoundFactory_: Maybe; - maci: Maybe; - maci_not: Maybe; - maci_gt: Maybe; - maci_lt: Maybe; - maci_gte: Maybe; - maci_lte: Maybe; - maci_in: Maybe>; - maci_not_in: Maybe>; - maci_contains: Maybe; - maci_not_contains: Maybe; - messages_: Maybe; - recipientRegistry: Maybe; - recipientRegistry_not: Maybe; - recipientRegistry_gt: Maybe; - recipientRegistry_lt: Maybe; - recipientRegistry_gte: Maybe; - recipientRegistry_lte: Maybe; - recipientRegistry_in: Maybe>; - recipientRegistry_not_in: Maybe>; - recipientRegistry_contains: Maybe; - recipientRegistry_contains_nocase: Maybe; - recipientRegistry_not_contains: Maybe; - recipientRegistry_not_contains_nocase: Maybe; - recipientRegistry_starts_with: Maybe; - recipientRegistry_starts_with_nocase: Maybe; - recipientRegistry_not_starts_with: Maybe; - recipientRegistry_not_starts_with_nocase: Maybe; - recipientRegistry_ends_with: Maybe; - recipientRegistry_ends_with_nocase: Maybe; - recipientRegistry_not_ends_with: Maybe; - recipientRegistry_not_ends_with_nocase: Maybe; - recipientRegistry_: Maybe; - recipientRegistryAddress: Maybe; - recipientRegistryAddress_not: Maybe; - recipientRegistryAddress_gt: Maybe; - recipientRegistryAddress_lt: Maybe; - recipientRegistryAddress_gte: Maybe; - recipientRegistryAddress_lte: Maybe; - recipientRegistryAddress_in: Maybe>; - recipientRegistryAddress_not_in: Maybe>; - recipientRegistryAddress_contains: Maybe; - recipientRegistryAddress_not_contains: Maybe; - contributorRegistry: Maybe; - contributorRegistry_not: Maybe; - contributorRegistry_gt: Maybe; - contributorRegistry_lt: Maybe; - contributorRegistry_gte: Maybe; - contributorRegistry_lte: Maybe; - contributorRegistry_in: Maybe>; - contributorRegistry_not_in: Maybe>; - contributorRegistry_contains: Maybe; - contributorRegistry_contains_nocase: Maybe; - contributorRegistry_not_contains: Maybe; - contributorRegistry_not_contains_nocase: Maybe; - contributorRegistry_starts_with: Maybe; - contributorRegistry_starts_with_nocase: Maybe; - contributorRegistry_not_starts_with: Maybe; - contributorRegistry_not_starts_with_nocase: Maybe; - contributorRegistry_ends_with: Maybe; - contributorRegistry_ends_with_nocase: Maybe; - contributorRegistry_not_ends_with: Maybe; - contributorRegistry_not_ends_with_nocase: Maybe; - contributorRegistry_: Maybe; - contributorRegistryAddress: Maybe; - contributorRegistryAddress_not: Maybe; - contributorRegistryAddress_gt: Maybe; - contributorRegistryAddress_lt: Maybe; - contributorRegistryAddress_gte: Maybe; - contributorRegistryAddress_lte: Maybe; - contributorRegistryAddress_in: Maybe>; - contributorRegistryAddress_not_in: Maybe>; - contributorRegistryAddress_contains: Maybe; - contributorRegistryAddress_not_contains: Maybe; - nativeToken: Maybe; - nativeToken_not: Maybe; - nativeToken_gt: Maybe; - nativeToken_lt: Maybe; - nativeToken_gte: Maybe; - nativeToken_lte: Maybe; - nativeToken_in: Maybe>; - nativeToken_not_in: Maybe>; - nativeToken_contains: Maybe; - nativeToken_not_contains: Maybe; - nativeTokenInfo: Maybe; - nativeTokenInfo_not: Maybe; - nativeTokenInfo_gt: Maybe; - nativeTokenInfo_lt: Maybe; - nativeTokenInfo_gte: Maybe; - nativeTokenInfo_lte: Maybe; - nativeTokenInfo_in: Maybe>; - nativeTokenInfo_not_in: Maybe>; - nativeTokenInfo_contains: Maybe; - nativeTokenInfo_contains_nocase: Maybe; - nativeTokenInfo_not_contains: Maybe; - nativeTokenInfo_not_contains_nocase: Maybe; - nativeTokenInfo_starts_with: Maybe; - nativeTokenInfo_starts_with_nocase: Maybe; - nativeTokenInfo_not_starts_with: Maybe; - nativeTokenInfo_not_starts_with_nocase: Maybe; - nativeTokenInfo_ends_with: Maybe; - nativeTokenInfo_ends_with_nocase: Maybe; - nativeTokenInfo_not_ends_with: Maybe; - nativeTokenInfo_not_ends_with_nocase: Maybe; - nativeTokenInfo_: Maybe; - startTime: Maybe; - startTime_not: Maybe; - startTime_gt: Maybe; - startTime_lt: Maybe; - startTime_gte: Maybe; - startTime_lte: Maybe; - startTime_in: Maybe>; - startTime_not_in: Maybe>; - signUpDeadline: Maybe; - signUpDeadline_not: Maybe; - signUpDeadline_gt: Maybe; - signUpDeadline_lt: Maybe; - signUpDeadline_gte: Maybe; - signUpDeadline_lte: Maybe; - signUpDeadline_in: Maybe>; - signUpDeadline_not_in: Maybe>; - votingDeadline: Maybe; - votingDeadline_not: Maybe; - votingDeadline_gt: Maybe; - votingDeadline_lt: Maybe; - votingDeadline_gte: Maybe; - votingDeadline_lte: Maybe; - votingDeadline_in: Maybe>; - votingDeadline_not_in: Maybe>; - coordinator: Maybe; - coordinator_not: Maybe; - coordinator_gt: Maybe; - coordinator_lt: Maybe; - coordinator_gte: Maybe; - coordinator_lte: Maybe; - coordinator_in: Maybe>; - coordinator_not_in: Maybe>; - coordinator_contains: Maybe; - coordinator_not_contains: Maybe; - voiceCreditFactor: Maybe; - voiceCreditFactor_not: Maybe; - voiceCreditFactor_gt: Maybe; - voiceCreditFactor_lt: Maybe; - voiceCreditFactor_gte: Maybe; - voiceCreditFactor_lte: Maybe; - voiceCreditFactor_in: Maybe>; - voiceCreditFactor_not_in: Maybe>; - contributorCount: Maybe; - contributorCount_not: Maybe; - contributorCount_gt: Maybe; - contributorCount_lt: Maybe; - contributorCount_gte: Maybe; - contributorCount_lte: Maybe; - contributorCount_in: Maybe>; - contributorCount_not_in: Maybe>; - recipientCount: Maybe; - recipientCount_not: Maybe; - recipientCount_gt: Maybe; - recipientCount_lt: Maybe; - recipientCount_gte: Maybe; - recipientCount_lte: Maybe; - recipientCount_in: Maybe>; - recipientCount_not_in: Maybe>; - matchingPoolSize: Maybe; - matchingPoolSize_not: Maybe; - matchingPoolSize_gt: Maybe; - matchingPoolSize_lt: Maybe; - matchingPoolSize_gte: Maybe; - matchingPoolSize_lte: Maybe; - matchingPoolSize_in: Maybe>; - matchingPoolSize_not_in: Maybe>; - totalSpent: Maybe; - totalSpent_not: Maybe; - totalSpent_gt: Maybe; - totalSpent_lt: Maybe; - totalSpent_gte: Maybe; - totalSpent_lte: Maybe; - totalSpent_in: Maybe>; - totalSpent_not_in: Maybe>; - totalVotes: Maybe; - totalVotes_not: Maybe; - totalVotes_gt: Maybe; - totalVotes_lt: Maybe; - totalVotes_gte: Maybe; - totalVotes_lte: Maybe; - totalVotes_in: Maybe>; - totalVotes_not_in: Maybe>; - isFinalized: Maybe; - isFinalized_not: Maybe; - isFinalized_in: Maybe>; - isFinalized_not_in: Maybe>; - isCancelled: Maybe; - isCancelled_not: Maybe; - isCancelled_in: Maybe>; - isCancelled_not_in: Maybe>; - tallyHash: Maybe; - tallyHash_not: Maybe; - tallyHash_gt: Maybe; - tallyHash_lt: Maybe; - tallyHash_gte: Maybe; - tallyHash_lte: Maybe; - tallyHash_in: Maybe>; - tallyHash_not_in: Maybe>; - tallyHash_contains: Maybe; - tallyHash_contains_nocase: Maybe; - tallyHash_not_contains: Maybe; - tallyHash_not_contains_nocase: Maybe; - tallyHash_starts_with: Maybe; - tallyHash_starts_with_nocase: Maybe; - tallyHash_not_starts_with: Maybe; - tallyHash_not_starts_with_nocase: Maybe; - tallyHash_ends_with: Maybe; - tallyHash_ends_with_nocase: Maybe; - tallyHash_not_ends_with: Maybe; - tallyHash_not_ends_with_nocase: Maybe; - recipients_: Maybe; - contributors_: Maybe; - contributions_: Maybe; - votes_: Maybe; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; - lastUpdatedAt: Maybe; - lastUpdatedAt_not: Maybe; - lastUpdatedAt_gt: Maybe; - lastUpdatedAt_lt: Maybe; - lastUpdatedAt_gte: Maybe; - lastUpdatedAt_lte: Maybe; - lastUpdatedAt_in: Maybe>; - lastUpdatedAt_not_in: Maybe>; - lastUpdatedAt_contains: Maybe; - lastUpdatedAt_contains_nocase: Maybe; - lastUpdatedAt_not_contains: Maybe; - lastUpdatedAt_not_contains_nocase: Maybe; - lastUpdatedAt_starts_with: Maybe; - lastUpdatedAt_starts_with_nocase: Maybe; - lastUpdatedAt_not_starts_with: Maybe; - lastUpdatedAt_not_starts_with_nocase: Maybe; - lastUpdatedAt_ends_with: Maybe; - lastUpdatedAt_ends_with_nocase: Maybe; - lastUpdatedAt_not_ends_with: Maybe; - lastUpdatedAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + contributions_: InputMaybe; + contributorCount: InputMaybe; + contributorCount_gt: InputMaybe; + contributorCount_gte: InputMaybe; + contributorCount_in: InputMaybe>; + contributorCount_lt: InputMaybe; + contributorCount_lte: InputMaybe; + contributorCount_not: InputMaybe; + contributorCount_not_in: InputMaybe>; + contributorRegistry: InputMaybe; + contributorRegistryAddress: InputMaybe; + contributorRegistryAddress_contains: InputMaybe; + contributorRegistryAddress_gt: InputMaybe; + contributorRegistryAddress_gte: InputMaybe; + contributorRegistryAddress_in: InputMaybe>; + contributorRegistryAddress_lt: InputMaybe; + contributorRegistryAddress_lte: InputMaybe; + contributorRegistryAddress_not: InputMaybe; + contributorRegistryAddress_not_contains: InputMaybe; + contributorRegistryAddress_not_in: InputMaybe>; + contributorRegistry_: InputMaybe; + contributorRegistry_contains: InputMaybe; + contributorRegistry_contains_nocase: InputMaybe; + contributorRegistry_ends_with: InputMaybe; + contributorRegistry_ends_with_nocase: InputMaybe; + contributorRegistry_gt: InputMaybe; + contributorRegistry_gte: InputMaybe; + contributorRegistry_in: InputMaybe>; + contributorRegistry_lt: InputMaybe; + contributorRegistry_lte: InputMaybe; + contributorRegistry_not: InputMaybe; + contributorRegistry_not_contains: InputMaybe; + contributorRegistry_not_contains_nocase: InputMaybe; + contributorRegistry_not_ends_with: InputMaybe; + contributorRegistry_not_ends_with_nocase: InputMaybe; + contributorRegistry_not_in: InputMaybe>; + contributorRegistry_not_starts_with: InputMaybe; + contributorRegistry_not_starts_with_nocase: InputMaybe; + contributorRegistry_starts_with: InputMaybe; + contributorRegistry_starts_with_nocase: InputMaybe; + contributors_: InputMaybe; + coordinator: InputMaybe; + coordinator_contains: InputMaybe; + coordinator_gt: InputMaybe; + coordinator_gte: InputMaybe; + coordinator_in: InputMaybe>; + coordinator_lt: InputMaybe; + coordinator_lte: InputMaybe; + coordinator_not: InputMaybe; + coordinator_not_contains: InputMaybe; + coordinator_not_in: InputMaybe>; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + fundingRoundFactory: InputMaybe; + fundingRoundFactory_: InputMaybe; + fundingRoundFactory_contains: InputMaybe; + fundingRoundFactory_contains_nocase: InputMaybe; + fundingRoundFactory_ends_with: InputMaybe; + fundingRoundFactory_ends_with_nocase: InputMaybe; + fundingRoundFactory_gt: InputMaybe; + fundingRoundFactory_gte: InputMaybe; + fundingRoundFactory_in: InputMaybe>; + fundingRoundFactory_lt: InputMaybe; + fundingRoundFactory_lte: InputMaybe; + fundingRoundFactory_not: InputMaybe; + fundingRoundFactory_not_contains: InputMaybe; + fundingRoundFactory_not_contains_nocase: InputMaybe; + fundingRoundFactory_not_ends_with: InputMaybe; + fundingRoundFactory_not_ends_with_nocase: InputMaybe; + fundingRoundFactory_not_in: InputMaybe>; + fundingRoundFactory_not_starts_with: InputMaybe; + fundingRoundFactory_not_starts_with_nocase: InputMaybe; + fundingRoundFactory_starts_with: InputMaybe; + fundingRoundFactory_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + isCancelled: InputMaybe; + isCancelled_in: InputMaybe>; + isCancelled_not: InputMaybe; + isCancelled_not_in: InputMaybe>; + isFinalized: InputMaybe; + isFinalized_in: InputMaybe>; + isFinalized_not: InputMaybe; + isFinalized_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + maci: InputMaybe; + maci_contains: InputMaybe; + maci_gt: InputMaybe; + maci_gte: InputMaybe; + maci_in: InputMaybe>; + maci_lt: InputMaybe; + maci_lte: InputMaybe; + maci_not: InputMaybe; + maci_not_contains: InputMaybe; + maci_not_in: InputMaybe>; + matchingPoolSize: InputMaybe; + matchingPoolSize_gt: InputMaybe; + matchingPoolSize_gte: InputMaybe; + matchingPoolSize_in: InputMaybe>; + matchingPoolSize_lt: InputMaybe; + matchingPoolSize_lte: InputMaybe; + matchingPoolSize_not: InputMaybe; + matchingPoolSize_not_in: InputMaybe>; + messages_: InputMaybe; + nativeToken: InputMaybe; + nativeTokenInfo: InputMaybe; + nativeTokenInfo_: InputMaybe; + nativeTokenInfo_contains: InputMaybe; + nativeTokenInfo_contains_nocase: InputMaybe; + nativeTokenInfo_ends_with: InputMaybe; + nativeTokenInfo_ends_with_nocase: InputMaybe; + nativeTokenInfo_gt: InputMaybe; + nativeTokenInfo_gte: InputMaybe; + nativeTokenInfo_in: InputMaybe>; + nativeTokenInfo_lt: InputMaybe; + nativeTokenInfo_lte: InputMaybe; + nativeTokenInfo_not: InputMaybe; + nativeTokenInfo_not_contains: InputMaybe; + nativeTokenInfo_not_contains_nocase: InputMaybe; + nativeTokenInfo_not_ends_with: InputMaybe; + nativeTokenInfo_not_ends_with_nocase: InputMaybe; + nativeTokenInfo_not_in: InputMaybe>; + nativeTokenInfo_not_starts_with: InputMaybe; + nativeTokenInfo_not_starts_with_nocase: InputMaybe; + nativeTokenInfo_starts_with: InputMaybe; + nativeTokenInfo_starts_with_nocase: InputMaybe; + nativeToken_contains: InputMaybe; + nativeToken_gt: InputMaybe; + nativeToken_gte: InputMaybe; + nativeToken_in: InputMaybe>; + nativeToken_lt: InputMaybe; + nativeToken_lte: InputMaybe; + nativeToken_not: InputMaybe; + nativeToken_not_contains: InputMaybe; + nativeToken_not_in: InputMaybe>; + or: InputMaybe>>; + recipientCount: InputMaybe; + recipientCount_gt: InputMaybe; + recipientCount_gte: InputMaybe; + recipientCount_in: InputMaybe>; + recipientCount_lt: InputMaybe; + recipientCount_lte: InputMaybe; + recipientCount_not: InputMaybe; + recipientCount_not_in: InputMaybe>; + recipientRegistry: InputMaybe; + recipientRegistryAddress: InputMaybe; + recipientRegistryAddress_contains: InputMaybe; + recipientRegistryAddress_gt: InputMaybe; + recipientRegistryAddress_gte: InputMaybe; + recipientRegistryAddress_in: InputMaybe>; + recipientRegistryAddress_lt: InputMaybe; + recipientRegistryAddress_lte: InputMaybe; + recipientRegistryAddress_not: InputMaybe; + recipientRegistryAddress_not_contains: InputMaybe; + recipientRegistryAddress_not_in: InputMaybe>; + recipientRegistry_: InputMaybe; + recipientRegistry_contains: InputMaybe; + recipientRegistry_contains_nocase: InputMaybe; + recipientRegistry_ends_with: InputMaybe; + recipientRegistry_ends_with_nocase: InputMaybe; + recipientRegistry_gt: InputMaybe; + recipientRegistry_gte: InputMaybe; + recipientRegistry_in: InputMaybe>; + recipientRegistry_lt: InputMaybe; + recipientRegistry_lte: InputMaybe; + recipientRegistry_not: InputMaybe; + recipientRegistry_not_contains: InputMaybe; + recipientRegistry_not_contains_nocase: InputMaybe; + recipientRegistry_not_ends_with: InputMaybe; + recipientRegistry_not_ends_with_nocase: InputMaybe; + recipientRegistry_not_in: InputMaybe>; + recipientRegistry_not_starts_with: InputMaybe; + recipientRegistry_not_starts_with_nocase: InputMaybe; + recipientRegistry_starts_with: InputMaybe; + recipientRegistry_starts_with_nocase: InputMaybe; + recipients_: InputMaybe; + signUpDeadline: InputMaybe; + signUpDeadline_gt: InputMaybe; + signUpDeadline_gte: InputMaybe; + signUpDeadline_in: InputMaybe>; + signUpDeadline_lt: InputMaybe; + signUpDeadline_lte: InputMaybe; + signUpDeadline_not: InputMaybe; + signUpDeadline_not_in: InputMaybe>; + startTime: InputMaybe; + startTime_gt: InputMaybe; + startTime_gte: InputMaybe; + startTime_in: InputMaybe>; + startTime_lt: InputMaybe; + startTime_lte: InputMaybe; + startTime_not: InputMaybe; + startTime_not_in: InputMaybe>; + tallyHash: InputMaybe; + tallyHash_contains: InputMaybe; + tallyHash_contains_nocase: InputMaybe; + tallyHash_ends_with: InputMaybe; + tallyHash_ends_with_nocase: InputMaybe; + tallyHash_gt: InputMaybe; + tallyHash_gte: InputMaybe; + tallyHash_in: InputMaybe>; + tallyHash_lt: InputMaybe; + tallyHash_lte: InputMaybe; + tallyHash_not: InputMaybe; + tallyHash_not_contains: InputMaybe; + tallyHash_not_contains_nocase: InputMaybe; + tallyHash_not_ends_with: InputMaybe; + tallyHash_not_ends_with_nocase: InputMaybe; + tallyHash_not_in: InputMaybe>; + tallyHash_not_starts_with: InputMaybe; + tallyHash_not_starts_with_nocase: InputMaybe; + tallyHash_starts_with: InputMaybe; + tallyHash_starts_with_nocase: InputMaybe; + totalSpent: InputMaybe; + totalSpent_gt: InputMaybe; + totalSpent_gte: InputMaybe; + totalSpent_in: InputMaybe>; + totalSpent_lt: InputMaybe; + totalSpent_lte: InputMaybe; + totalSpent_not: InputMaybe; + totalSpent_not_in: InputMaybe>; + totalVotes: InputMaybe; + totalVotes_gt: InputMaybe; + totalVotes_gte: InputMaybe; + totalVotes_in: InputMaybe>; + totalVotes_lt: InputMaybe; + totalVotes_lte: InputMaybe; + totalVotes_not: InputMaybe; + totalVotes_not_in: InputMaybe>; + voiceCreditFactor: InputMaybe; + voiceCreditFactor_gt: InputMaybe; + voiceCreditFactor_gte: InputMaybe; + voiceCreditFactor_in: InputMaybe>; + voiceCreditFactor_lt: InputMaybe; + voiceCreditFactor_lte: InputMaybe; + voiceCreditFactor_not: InputMaybe; + voiceCreditFactor_not_in: InputMaybe>; + votes_: InputMaybe; + votingDeadline: InputMaybe; + votingDeadline_gt: InputMaybe; + votingDeadline_gte: InputMaybe; + votingDeadline_in: InputMaybe>; + votingDeadline_lt: InputMaybe; + votingDeadline_lte: InputMaybe; + votingDeadline_not: InputMaybe; + votingDeadline_not_in: InputMaybe>; }; export enum FundingRound_OrderBy { - Id = 'id', + Contributions = 'contributions', + ContributorCount = 'contributorCount', + ContributorRegistry = 'contributorRegistry', + ContributorRegistryAddress = 'contributorRegistryAddress', + ContributorRegistryContext = 'contributorRegistry__context', + ContributorRegistryCreatedAt = 'contributorRegistry__createdAt', + ContributorRegistryId = 'contributorRegistry__id', + ContributorRegistryLastUpdatedAt = 'contributorRegistry__lastUpdatedAt', + ContributorRegistryOwner = 'contributorRegistry__owner', + Contributors = 'contributors', + Coordinator = 'coordinator', + CreatedAt = 'createdAt', FundingRoundFactory = 'fundingRoundFactory', - FundingRoundFactoryId = 'fundingRoundFactory__id', - FundingRoundFactoryOwner = 'fundingRoundFactory__owner', - FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', - FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', + FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', FundingRoundFactoryContributorRegistryAddress = 'fundingRoundFactory__contributorRegistryAddress', - FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', - FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', + FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', FundingRoundFactoryCoordinatorPubKey = 'fundingRoundFactory__coordinatorPubKey', - FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', - FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', - FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', - FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', + FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', + FundingRoundFactoryId = 'fundingRoundFactory__id', + FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', + FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', + FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', + FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', + FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', FundingRoundFactoryMessageBatchSize = 'fundingRoundFactory__messageBatchSize', - FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', + FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', + FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', + FundingRoundFactoryOwner = 'fundingRoundFactory__owner', FundingRoundFactoryQvtVerifier = 'fundingRoundFactory__qvtVerifier', + FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', FundingRoundFactorySignUpDuration = 'fundingRoundFactory__signUpDuration', + FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', + FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', + FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', FundingRoundFactoryVotingDuration = 'fundingRoundFactory__votingDuration', - FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', - FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', - FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', - FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', - FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', + Id = 'id', + IsCancelled = 'isCancelled', + IsFinalized = 'isFinalized', + LastUpdatedAt = 'lastUpdatedAt', Maci = 'maci', + MatchingPoolSize = 'matchingPoolSize', Messages = 'messages', + NativeToken = 'nativeToken', + NativeTokenInfo = 'nativeTokenInfo', + NativeTokenInfoCreatedAt = 'nativeTokenInfo__createdAt', + NativeTokenInfoDecimals = 'nativeTokenInfo__decimals', + NativeTokenInfoId = 'nativeTokenInfo__id', + NativeTokenInfoLastUpdatedAt = 'nativeTokenInfo__lastUpdatedAt', + NativeTokenInfoSymbol = 'nativeTokenInfo__symbol', + NativeTokenInfoTokenAddress = 'nativeTokenInfo__tokenAddress', + RecipientCount = 'recipientCount', RecipientRegistry = 'recipientRegistry', - RecipientRegistryId = 'recipientRegistry__id', + RecipientRegistryAddress = 'recipientRegistryAddress', RecipientRegistryBaseDeposit = 'recipientRegistry__baseDeposit', RecipientRegistryChallengePeriodDuration = 'recipientRegistry__challengePeriodDuration', RecipientRegistryController = 'recipientRegistry__controller', - RecipientRegistryMaxRecipients = 'recipientRegistry__maxRecipients', - RecipientRegistryOwner = 'recipientRegistry__owner', RecipientRegistryCreatedAt = 'recipientRegistry__createdAt', + RecipientRegistryId = 'recipientRegistry__id', RecipientRegistryLastUpdatedAt = 'recipientRegistry__lastUpdatedAt', - RecipientRegistryAddress = 'recipientRegistryAddress', - ContributorRegistry = 'contributorRegistry', - ContributorRegistryId = 'contributorRegistry__id', - ContributorRegistryContext = 'contributorRegistry__context', - ContributorRegistryOwner = 'contributorRegistry__owner', - ContributorRegistryCreatedAt = 'contributorRegistry__createdAt', - ContributorRegistryLastUpdatedAt = 'contributorRegistry__lastUpdatedAt', - ContributorRegistryAddress = 'contributorRegistryAddress', - NativeToken = 'nativeToken', - NativeTokenInfo = 'nativeTokenInfo', - NativeTokenInfoId = 'nativeTokenInfo__id', - NativeTokenInfoTokenAddress = 'nativeTokenInfo__tokenAddress', - NativeTokenInfoSymbol = 'nativeTokenInfo__symbol', - NativeTokenInfoDecimals = 'nativeTokenInfo__decimals', - NativeTokenInfoCreatedAt = 'nativeTokenInfo__createdAt', - NativeTokenInfoLastUpdatedAt = 'nativeTokenInfo__lastUpdatedAt', - StartTime = 'startTime', + RecipientRegistryMaxRecipients = 'recipientRegistry__maxRecipients', + RecipientRegistryOwner = 'recipientRegistry__owner', + Recipients = 'recipients', SignUpDeadline = 'signUpDeadline', - VotingDeadline = 'votingDeadline', - Coordinator = 'coordinator', - VoiceCreditFactor = 'voiceCreditFactor', - ContributorCount = 'contributorCount', - RecipientCount = 'recipientCount', - MatchingPoolSize = 'matchingPoolSize', + StartTime = 'startTime', + TallyHash = 'tallyHash', TotalSpent = 'totalSpent', TotalVotes = 'totalVotes', - IsFinalized = 'isFinalized', - IsCancelled = 'isCancelled', - TallyHash = 'tallyHash', - Recipients = 'recipients', - Contributors = 'contributors', - Contributions = 'contributions', + VoiceCreditFactor = 'voiceCreditFactor', Votes = 'votes', - CreatedAt = 'createdAt', - LastUpdatedAt = 'lastUpdatedAt' + VotingDeadline = 'votingDeadline' } export type Message = { __typename?: 'Message'; - id: Scalars['ID']; + blockNumber: Scalars['BigInt']; data: Maybe>; + fundingRound: Maybe; + id: Scalars['ID']; iv: Scalars['BigInt']; publicKey: Maybe; - fundingRound: Maybe; + submittedBy: Maybe; timestamp: Maybe; + transactionIndex: Scalars['BigInt']; }; export type Message_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - data: Maybe>; - data_not: Maybe>; - data_contains: Maybe>; - data_contains_nocase: Maybe>; - data_not_contains: Maybe>; - data_not_contains_nocase: Maybe>; - iv: Maybe; - iv_not: Maybe; - iv_gt: Maybe; - iv_lt: Maybe; - iv_gte: Maybe; - iv_lte: Maybe; - iv_in: Maybe>; - iv_not_in: Maybe>; - publicKey: Maybe; - publicKey_not: Maybe; - publicKey_gt: Maybe; - publicKey_lt: Maybe; - publicKey_gte: Maybe; - publicKey_lte: Maybe; - publicKey_in: Maybe>; - publicKey_not_in: Maybe>; - publicKey_contains: Maybe; - publicKey_contains_nocase: Maybe; - publicKey_not_contains: Maybe; - publicKey_not_contains_nocase: Maybe; - publicKey_starts_with: Maybe; - publicKey_starts_with_nocase: Maybe; - publicKey_not_starts_with: Maybe; - publicKey_not_starts_with_nocase: Maybe; - publicKey_ends_with: Maybe; - publicKey_ends_with_nocase: Maybe; - publicKey_not_ends_with: Maybe; - publicKey_not_ends_with_nocase: Maybe; - publicKey_: Maybe; - fundingRound: Maybe; - fundingRound_not: Maybe; - fundingRound_gt: Maybe; - fundingRound_lt: Maybe; - fundingRound_gte: Maybe; - fundingRound_lte: Maybe; - fundingRound_in: Maybe>; - fundingRound_not_in: Maybe>; - fundingRound_contains: Maybe; - fundingRound_contains_nocase: Maybe; - fundingRound_not_contains: Maybe; - fundingRound_not_contains_nocase: Maybe; - fundingRound_starts_with: Maybe; - fundingRound_starts_with_nocase: Maybe; - fundingRound_not_starts_with: Maybe; - fundingRound_not_starts_with_nocase: Maybe; - fundingRound_ends_with: Maybe; - fundingRound_ends_with_nocase: Maybe; - fundingRound_not_ends_with: Maybe; - fundingRound_not_ends_with_nocase: Maybe; - fundingRound_: Maybe; - timestamp: Maybe; - timestamp_not: Maybe; - timestamp_gt: Maybe; - timestamp_lt: Maybe; - timestamp_gte: Maybe; - timestamp_lte: Maybe; - timestamp_in: Maybe>; - timestamp_not_in: Maybe>; - timestamp_contains: Maybe; - timestamp_contains_nocase: Maybe; - timestamp_not_contains: Maybe; - timestamp_not_contains_nocase: Maybe; - timestamp_starts_with: Maybe; - timestamp_starts_with_nocase: Maybe; - timestamp_not_starts_with: Maybe; - timestamp_not_starts_with_nocase: Maybe; - timestamp_ends_with: Maybe; - timestamp_ends_with_nocase: Maybe; - timestamp_not_ends_with: Maybe; - timestamp_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + blockNumber: InputMaybe; + blockNumber_gt: InputMaybe; + blockNumber_gte: InputMaybe; + blockNumber_in: InputMaybe>; + blockNumber_lt: InputMaybe; + blockNumber_lte: InputMaybe; + blockNumber_not: InputMaybe; + blockNumber_not_in: InputMaybe>; + data: InputMaybe>; + data_contains: InputMaybe>; + data_contains_nocase: InputMaybe>; + data_not: InputMaybe>; + data_not_contains: InputMaybe>; + data_not_contains_nocase: InputMaybe>; + fundingRound: InputMaybe; + fundingRound_: InputMaybe; + fundingRound_contains: InputMaybe; + fundingRound_contains_nocase: InputMaybe; + fundingRound_ends_with: InputMaybe; + fundingRound_ends_with_nocase: InputMaybe; + fundingRound_gt: InputMaybe; + fundingRound_gte: InputMaybe; + fundingRound_in: InputMaybe>; + fundingRound_lt: InputMaybe; + fundingRound_lte: InputMaybe; + fundingRound_not: InputMaybe; + fundingRound_not_contains: InputMaybe; + fundingRound_not_contains_nocase: InputMaybe; + fundingRound_not_ends_with: InputMaybe; + fundingRound_not_ends_with_nocase: InputMaybe; + fundingRound_not_in: InputMaybe>; + fundingRound_not_starts_with: InputMaybe; + fundingRound_not_starts_with_nocase: InputMaybe; + fundingRound_starts_with: InputMaybe; + fundingRound_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + iv: InputMaybe; + iv_gt: InputMaybe; + iv_gte: InputMaybe; + iv_in: InputMaybe>; + iv_lt: InputMaybe; + iv_lte: InputMaybe; + iv_not: InputMaybe; + iv_not_in: InputMaybe>; + or: InputMaybe>>; + publicKey: InputMaybe; + publicKey_: InputMaybe; + publicKey_contains: InputMaybe; + publicKey_contains_nocase: InputMaybe; + publicKey_ends_with: InputMaybe; + publicKey_ends_with_nocase: InputMaybe; + publicKey_gt: InputMaybe; + publicKey_gte: InputMaybe; + publicKey_in: InputMaybe>; + publicKey_lt: InputMaybe; + publicKey_lte: InputMaybe; + publicKey_not: InputMaybe; + publicKey_not_contains: InputMaybe; + publicKey_not_contains_nocase: InputMaybe; + publicKey_not_ends_with: InputMaybe; + publicKey_not_ends_with_nocase: InputMaybe; + publicKey_not_in: InputMaybe>; + publicKey_not_starts_with: InputMaybe; + publicKey_not_starts_with_nocase: InputMaybe; + publicKey_starts_with: InputMaybe; + publicKey_starts_with_nocase: InputMaybe; + submittedBy: InputMaybe; + submittedBy_contains: InputMaybe; + submittedBy_gt: InputMaybe; + submittedBy_gte: InputMaybe; + submittedBy_in: InputMaybe>; + submittedBy_lt: InputMaybe; + submittedBy_lte: InputMaybe; + submittedBy_not: InputMaybe; + submittedBy_not_contains: InputMaybe; + submittedBy_not_in: InputMaybe>; + timestamp: InputMaybe; + timestamp_contains: InputMaybe; + timestamp_contains_nocase: InputMaybe; + timestamp_ends_with: InputMaybe; + timestamp_ends_with_nocase: InputMaybe; + timestamp_gt: InputMaybe; + timestamp_gte: InputMaybe; + timestamp_in: InputMaybe>; + timestamp_lt: InputMaybe; + timestamp_lte: InputMaybe; + timestamp_not: InputMaybe; + timestamp_not_contains: InputMaybe; + timestamp_not_contains_nocase: InputMaybe; + timestamp_not_ends_with: InputMaybe; + timestamp_not_ends_with_nocase: InputMaybe; + timestamp_not_in: InputMaybe>; + timestamp_not_starts_with: InputMaybe; + timestamp_not_starts_with_nocase: InputMaybe; + timestamp_starts_with: InputMaybe; + timestamp_starts_with_nocase: InputMaybe; + transactionIndex: InputMaybe; + transactionIndex_gt: InputMaybe; + transactionIndex_gte: InputMaybe; + transactionIndex_in: InputMaybe>; + transactionIndex_lt: InputMaybe; + transactionIndex_lte: InputMaybe; + transactionIndex_not: InputMaybe; + transactionIndex_not_in: InputMaybe>; }; export enum Message_OrderBy { - Id = 'id', + BlockNumber = 'blockNumber', Data = 'data', - Iv = 'iv', - PublicKey = 'publicKey', - PublicKeyId = 'publicKey__id', - PublicKeyX = 'publicKey__x', - PublicKeyY = 'publicKey__y', - PublicKeyStateIndex = 'publicKey__stateIndex', - PublicKeyVoiceCreditBalance = 'publicKey__voiceCreditBalance', FundingRound = 'fundingRound', - FundingRoundId = 'fundingRound__id', - FundingRoundMaci = 'fundingRound__maci', - FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', + FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', - FundingRoundNativeToken = 'fundingRound__nativeToken', - FundingRoundStartTime = 'fundingRound__startTime', - FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', - FundingRoundVotingDeadline = 'fundingRound__votingDeadline', FundingRoundCoordinator = 'fundingRound__coordinator', - FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', - FundingRoundContributorCount = 'fundingRound__contributorCount', - FundingRoundRecipientCount = 'fundingRound__recipientCount', + FundingRoundCreatedAt = 'fundingRound__createdAt', + FundingRoundId = 'fundingRound__id', + FundingRoundIsCancelled = 'fundingRound__isCancelled', + FundingRoundIsFinalized = 'fundingRound__isFinalized', + FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', + FundingRoundMaci = 'fundingRound__maci', FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundNativeToken = 'fundingRound__nativeToken', + FundingRoundRecipientCount = 'fundingRound__recipientCount', + FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', + FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', + FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', - FundingRoundIsFinalized = 'fundingRound__isFinalized', - FundingRoundIsCancelled = 'fundingRound__isCancelled', - FundingRoundTallyHash = 'fundingRound__tallyHash', - FundingRoundCreatedAt = 'fundingRound__createdAt', - FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', - Timestamp = 'timestamp' + FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVotingDeadline = 'fundingRound__votingDeadline', + Id = 'id', + Iv = 'iv', + PublicKey = 'publicKey', + PublicKeyId = 'publicKey__id', + PublicKeyStateIndex = 'publicKey__stateIndex', + PublicKeyVoiceCreditBalance = 'publicKey__voiceCreditBalance', + PublicKeyX = 'publicKey__x', + PublicKeyY = 'publicKey__y', + SubmittedBy = 'submittedBy', + Timestamp = 'timestamp', + TransactionIndex = 'transactionIndex' } /** Defines the order direction, either ascending or descending */ @@ -1744,1350 +1756,1350 @@ export enum OrderDirection { export type PublicKey = { __typename?: 'PublicKey'; - id: Scalars['ID']; fundingRound: Maybe; + id: Scalars['ID']; messages: Maybe>; - x: Scalars['BigInt']; - y: Scalars['BigInt']; stateIndex: Maybe; voiceCreditBalance: Maybe; + x: Scalars['BigInt']; + y: Scalars['BigInt']; }; export type PublicKeyMessagesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type PublicKey_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - fundingRound: Maybe; - fundingRound_not: Maybe; - fundingRound_gt: Maybe; - fundingRound_lt: Maybe; - fundingRound_gte: Maybe; - fundingRound_lte: Maybe; - fundingRound_in: Maybe>; - fundingRound_not_in: Maybe>; - fundingRound_contains: Maybe; - fundingRound_contains_nocase: Maybe; - fundingRound_not_contains: Maybe; - fundingRound_not_contains_nocase: Maybe; - fundingRound_starts_with: Maybe; - fundingRound_starts_with_nocase: Maybe; - fundingRound_not_starts_with: Maybe; - fundingRound_not_starts_with_nocase: Maybe; - fundingRound_ends_with: Maybe; - fundingRound_ends_with_nocase: Maybe; - fundingRound_not_ends_with: Maybe; - fundingRound_not_ends_with_nocase: Maybe; - fundingRound_: Maybe; - messages_: Maybe; - x: Maybe; - x_not: Maybe; - x_gt: Maybe; - x_lt: Maybe; - x_gte: Maybe; - x_lte: Maybe; - x_in: Maybe>; - x_not_in: Maybe>; - y: Maybe; - y_not: Maybe; - y_gt: Maybe; - y_lt: Maybe; - y_gte: Maybe; - y_lte: Maybe; - y_in: Maybe>; - y_not_in: Maybe>; - stateIndex: Maybe; - stateIndex_not: Maybe; - stateIndex_gt: Maybe; - stateIndex_lt: Maybe; - stateIndex_gte: Maybe; - stateIndex_lte: Maybe; - stateIndex_in: Maybe>; - stateIndex_not_in: Maybe>; - voiceCreditBalance: Maybe; - voiceCreditBalance_not: Maybe; - voiceCreditBalance_gt: Maybe; - voiceCreditBalance_lt: Maybe; - voiceCreditBalance_gte: Maybe; - voiceCreditBalance_lte: Maybe; - voiceCreditBalance_in: Maybe>; - voiceCreditBalance_not_in: Maybe>; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + fundingRound: InputMaybe; + fundingRound_: InputMaybe; + fundingRound_contains: InputMaybe; + fundingRound_contains_nocase: InputMaybe; + fundingRound_ends_with: InputMaybe; + fundingRound_ends_with_nocase: InputMaybe; + fundingRound_gt: InputMaybe; + fundingRound_gte: InputMaybe; + fundingRound_in: InputMaybe>; + fundingRound_lt: InputMaybe; + fundingRound_lte: InputMaybe; + fundingRound_not: InputMaybe; + fundingRound_not_contains: InputMaybe; + fundingRound_not_contains_nocase: InputMaybe; + fundingRound_not_ends_with: InputMaybe; + fundingRound_not_ends_with_nocase: InputMaybe; + fundingRound_not_in: InputMaybe>; + fundingRound_not_starts_with: InputMaybe; + fundingRound_not_starts_with_nocase: InputMaybe; + fundingRound_starts_with: InputMaybe; + fundingRound_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + messages_: InputMaybe; + or: InputMaybe>>; + stateIndex: InputMaybe; + stateIndex_gt: InputMaybe; + stateIndex_gte: InputMaybe; + stateIndex_in: InputMaybe>; + stateIndex_lt: InputMaybe; + stateIndex_lte: InputMaybe; + stateIndex_not: InputMaybe; + stateIndex_not_in: InputMaybe>; + voiceCreditBalance: InputMaybe; + voiceCreditBalance_gt: InputMaybe; + voiceCreditBalance_gte: InputMaybe; + voiceCreditBalance_in: InputMaybe>; + voiceCreditBalance_lt: InputMaybe; + voiceCreditBalance_lte: InputMaybe; + voiceCreditBalance_not: InputMaybe; + voiceCreditBalance_not_in: InputMaybe>; + x: InputMaybe; + x_gt: InputMaybe; + x_gte: InputMaybe; + x_in: InputMaybe>; + x_lt: InputMaybe; + x_lte: InputMaybe; + x_not: InputMaybe; + x_not_in: InputMaybe>; + y: InputMaybe; + y_gt: InputMaybe; + y_gte: InputMaybe; + y_in: InputMaybe>; + y_lt: InputMaybe; + y_lte: InputMaybe; + y_not: InputMaybe; + y_not_in: InputMaybe>; }; export enum PublicKey_OrderBy { - Id = 'id', FundingRound = 'fundingRound', + FundingRoundContributorCount = 'fundingRound__contributorCount', + FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCreatedAt = 'fundingRound__createdAt', FundingRoundId = 'fundingRound__id', + FundingRoundIsCancelled = 'fundingRound__isCancelled', + FundingRoundIsFinalized = 'fundingRound__isFinalized', + FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', FundingRoundMaci = 'fundingRound__maci', - FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', - FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', FundingRoundNativeToken = 'fundingRound__nativeToken', - FundingRoundStartTime = 'fundingRound__startTime', - FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', - FundingRoundVotingDeadline = 'fundingRound__votingDeadline', - FundingRoundCoordinator = 'fundingRound__coordinator', - FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', - FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundRecipientCount = 'fundingRound__recipientCount', - FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', + FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', + FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', - FundingRoundIsFinalized = 'fundingRound__isFinalized', - FundingRoundIsCancelled = 'fundingRound__isCancelled', - FundingRoundTallyHash = 'fundingRound__tallyHash', - FundingRoundCreatedAt = 'fundingRound__createdAt', - FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', + FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVotingDeadline = 'fundingRound__votingDeadline', + Id = 'id', Messages = 'messages', - X = 'x', - Y = 'y', StateIndex = 'stateIndex', - VoiceCreditBalance = 'voiceCreditBalance' + VoiceCreditBalance = 'voiceCreditBalance', + X = 'x', + Y = 'y' } export type Query = { __typename?: 'Query'; - fundingRoundFactory: Maybe; + /** Access to subgraph metadata */ + _meta: Maybe<_Meta_>; + contribution: Maybe; + contributions: Array; + contributor: Maybe; + contributorRegistries: Array; + contributorRegistry: Maybe; + contributors: Array; + coordinator: Maybe; + coordinators: Array; + donation: Maybe; + donations: Array; + fundingRound: Maybe; fundingRoundFactories: Array; + fundingRoundFactory: Maybe; + fundingRounds: Array; message: Maybe; messages: Array; publicKey: Maybe; publicKeys: Array; - fundingRound: Maybe; - fundingRounds: Array; - recipientRegistry: Maybe; - recipientRegistries: Array; recipient: Maybe; + recipientRegistries: Array; + recipientRegistry: Maybe; recipients: Array; - contributorRegistry: Maybe; - contributorRegistries: Array; - contributor: Maybe; - contributors: Array; - coordinator: Maybe; - coordinators: Array; - contribution: Maybe; - contributions: Array; - vote: Maybe; - votes: Array; - donation: Maybe; - donations: Array; token: Maybe; tokens: Array; - /** Access to subgraph metadata */ - _meta: Maybe<_Meta_>; + vote: Maybe; + votes: Array; }; -export type QueryFundingRoundFactoryArgs = { +export type Query_MetaArgs = { + block: InputMaybe; +}; + + +export type QueryContributionArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryFundingRoundFactoriesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryContributionsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryMessageArgs = { +export type QueryContributorArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryMessagesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryContributorRegistriesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryPublicKeyArgs = { +export type QueryContributorRegistryArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryPublicKeysArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryContributorsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryFundingRoundArgs = { +export type QueryCoordinatorArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryFundingRoundsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryCoordinatorsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryRecipientRegistryArgs = { +export type QueryDonationArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryRecipientRegistriesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryDonationsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryRecipientArgs = { +export type QueryFundingRoundArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryRecipientsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryFundingRoundFactoriesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryContributorRegistryArgs = { +export type QueryFundingRoundFactoryArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryContributorRegistriesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryFundingRoundsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryContributorArgs = { +export type QueryMessageArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryContributorsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryMessagesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryCoordinatorArgs = { +export type QueryPublicKeyArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryCoordinatorsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryPublicKeysArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryContributionArgs = { +export type QueryRecipientArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryContributionsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryRecipientRegistriesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryVoteArgs = { +export type QueryRecipientRegistryArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryVotesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryRecipientsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryDonationArgs = { +export type QueryTokenArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryDonationsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryTokensArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type QueryTokenArgs = { +export type QueryVoteArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type QueryTokensArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type QueryVotesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; -}; - - -export type Query_MetaArgs = { - block: Maybe; + where: InputMaybe; }; export type Recipient = { __typename?: 'Recipient'; + createdAt: Maybe; + deposit: Maybe; + fundingRounds: Maybe>; id: Scalars['ID']; - recipientRegistry: Maybe; + lastUpdatedAt: Maybe; + recipientAddress: Maybe; recipientIndex: Maybe; + recipientMetadata: Maybe; + recipientRegistry: Maybe; + rejected: Maybe; + requestResolvedHash: Maybe; + requestSubmittedHash: Maybe; requestType: Maybe; requester: Maybe; submissionTime: Maybe; - deposit: Maybe; - recipientAddress: Maybe; - recipientMetadata: Maybe; - rejected: Maybe; verified: Maybe; voteOptionIndex: Maybe; - requestResolvedHash: Maybe; - requestSubmittedHash: Maybe; - fundingRounds: Maybe>; - createdAt: Maybe; - lastUpdatedAt: Maybe; }; export type RecipientFundingRoundsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type RecipientRegistry = { __typename?: 'RecipientRegistry'; - id: Scalars['ID']; - fundingRoundFactory: Maybe; baseDeposit: Maybe; challengePeriodDuration: Maybe; controller: Maybe; + createdAt: Maybe; + fundingRoundFactory: Maybe; + id: Scalars['ID']; + lastUpdatedAt: Maybe; maxRecipients: Maybe; owner: Maybe; recipients: Maybe>; - createdAt: Maybe; - lastUpdatedAt: Maybe; }; export type RecipientRegistryRecipientsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; }; export type RecipientRegistry_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - fundingRoundFactory: Maybe; - fundingRoundFactory_not: Maybe; - fundingRoundFactory_gt: Maybe; - fundingRoundFactory_lt: Maybe; - fundingRoundFactory_gte: Maybe; - fundingRoundFactory_lte: Maybe; - fundingRoundFactory_in: Maybe>; - fundingRoundFactory_not_in: Maybe>; - fundingRoundFactory_contains: Maybe; - fundingRoundFactory_contains_nocase: Maybe; - fundingRoundFactory_not_contains: Maybe; - fundingRoundFactory_not_contains_nocase: Maybe; - fundingRoundFactory_starts_with: Maybe; - fundingRoundFactory_starts_with_nocase: Maybe; - fundingRoundFactory_not_starts_with: Maybe; - fundingRoundFactory_not_starts_with_nocase: Maybe; - fundingRoundFactory_ends_with: Maybe; - fundingRoundFactory_ends_with_nocase: Maybe; - fundingRoundFactory_not_ends_with: Maybe; - fundingRoundFactory_not_ends_with_nocase: Maybe; - fundingRoundFactory_: Maybe; - baseDeposit: Maybe; - baseDeposit_not: Maybe; - baseDeposit_gt: Maybe; - baseDeposit_lt: Maybe; - baseDeposit_gte: Maybe; - baseDeposit_lte: Maybe; - baseDeposit_in: Maybe>; - baseDeposit_not_in: Maybe>; - challengePeriodDuration: Maybe; - challengePeriodDuration_not: Maybe; - challengePeriodDuration_gt: Maybe; - challengePeriodDuration_lt: Maybe; - challengePeriodDuration_gte: Maybe; - challengePeriodDuration_lte: Maybe; - challengePeriodDuration_in: Maybe>; - challengePeriodDuration_not_in: Maybe>; - controller: Maybe; - controller_not: Maybe; - controller_gt: Maybe; - controller_lt: Maybe; - controller_gte: Maybe; - controller_lte: Maybe; - controller_in: Maybe>; - controller_not_in: Maybe>; - controller_contains: Maybe; - controller_not_contains: Maybe; - maxRecipients: Maybe; - maxRecipients_not: Maybe; - maxRecipients_gt: Maybe; - maxRecipients_lt: Maybe; - maxRecipients_gte: Maybe; - maxRecipients_lte: Maybe; - maxRecipients_in: Maybe>; - maxRecipients_not_in: Maybe>; - owner: Maybe; - owner_not: Maybe; - owner_gt: Maybe; - owner_lt: Maybe; - owner_gte: Maybe; - owner_lte: Maybe; - owner_in: Maybe>; - owner_not_in: Maybe>; - owner_contains: Maybe; - owner_not_contains: Maybe; - recipients_: Maybe; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; - lastUpdatedAt: Maybe; - lastUpdatedAt_not: Maybe; - lastUpdatedAt_gt: Maybe; - lastUpdatedAt_lt: Maybe; - lastUpdatedAt_gte: Maybe; - lastUpdatedAt_lte: Maybe; - lastUpdatedAt_in: Maybe>; - lastUpdatedAt_not_in: Maybe>; - lastUpdatedAt_contains: Maybe; - lastUpdatedAt_contains_nocase: Maybe; - lastUpdatedAt_not_contains: Maybe; - lastUpdatedAt_not_contains_nocase: Maybe; - lastUpdatedAt_starts_with: Maybe; - lastUpdatedAt_starts_with_nocase: Maybe; - lastUpdatedAt_not_starts_with: Maybe; - lastUpdatedAt_not_starts_with_nocase: Maybe; - lastUpdatedAt_ends_with: Maybe; - lastUpdatedAt_ends_with_nocase: Maybe; - lastUpdatedAt_not_ends_with: Maybe; - lastUpdatedAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + baseDeposit: InputMaybe; + baseDeposit_gt: InputMaybe; + baseDeposit_gte: InputMaybe; + baseDeposit_in: InputMaybe>; + baseDeposit_lt: InputMaybe; + baseDeposit_lte: InputMaybe; + baseDeposit_not: InputMaybe; + baseDeposit_not_in: InputMaybe>; + challengePeriodDuration: InputMaybe; + challengePeriodDuration_gt: InputMaybe; + challengePeriodDuration_gte: InputMaybe; + challengePeriodDuration_in: InputMaybe>; + challengePeriodDuration_lt: InputMaybe; + challengePeriodDuration_lte: InputMaybe; + challengePeriodDuration_not: InputMaybe; + challengePeriodDuration_not_in: InputMaybe>; + controller: InputMaybe; + controller_contains: InputMaybe; + controller_gt: InputMaybe; + controller_gte: InputMaybe; + controller_in: InputMaybe>; + controller_lt: InputMaybe; + controller_lte: InputMaybe; + controller_not: InputMaybe; + controller_not_contains: InputMaybe; + controller_not_in: InputMaybe>; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + fundingRoundFactory: InputMaybe; + fundingRoundFactory_: InputMaybe; + fundingRoundFactory_contains: InputMaybe; + fundingRoundFactory_contains_nocase: InputMaybe; + fundingRoundFactory_ends_with: InputMaybe; + fundingRoundFactory_ends_with_nocase: InputMaybe; + fundingRoundFactory_gt: InputMaybe; + fundingRoundFactory_gte: InputMaybe; + fundingRoundFactory_in: InputMaybe>; + fundingRoundFactory_lt: InputMaybe; + fundingRoundFactory_lte: InputMaybe; + fundingRoundFactory_not: InputMaybe; + fundingRoundFactory_not_contains: InputMaybe; + fundingRoundFactory_not_contains_nocase: InputMaybe; + fundingRoundFactory_not_ends_with: InputMaybe; + fundingRoundFactory_not_ends_with_nocase: InputMaybe; + fundingRoundFactory_not_in: InputMaybe>; + fundingRoundFactory_not_starts_with: InputMaybe; + fundingRoundFactory_not_starts_with_nocase: InputMaybe; + fundingRoundFactory_starts_with: InputMaybe; + fundingRoundFactory_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + maxRecipients: InputMaybe; + maxRecipients_gt: InputMaybe; + maxRecipients_gte: InputMaybe; + maxRecipients_in: InputMaybe>; + maxRecipients_lt: InputMaybe; + maxRecipients_lte: InputMaybe; + maxRecipients_not: InputMaybe; + maxRecipients_not_in: InputMaybe>; + or: InputMaybe>>; + owner: InputMaybe; + owner_contains: InputMaybe; + owner_gt: InputMaybe; + owner_gte: InputMaybe; + owner_in: InputMaybe>; + owner_lt: InputMaybe; + owner_lte: InputMaybe; + owner_not: InputMaybe; + owner_not_contains: InputMaybe; + owner_not_in: InputMaybe>; + recipients_: InputMaybe; }; export enum RecipientRegistry_OrderBy { - Id = 'id', + BaseDeposit = 'baseDeposit', + ChallengePeriodDuration = 'challengePeriodDuration', + Controller = 'controller', + CreatedAt = 'createdAt', FundingRoundFactory = 'fundingRoundFactory', - FundingRoundFactoryId = 'fundingRoundFactory__id', - FundingRoundFactoryOwner = 'fundingRoundFactory__owner', - FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', - FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', + FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', FundingRoundFactoryContributorRegistryAddress = 'fundingRoundFactory__contributorRegistryAddress', - FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', - FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', + FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', FundingRoundFactoryCoordinatorPubKey = 'fundingRoundFactory__coordinatorPubKey', - FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', - FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', - FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', - FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', + FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', + FundingRoundFactoryId = 'fundingRoundFactory__id', + FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', + FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', + FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', + FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', + FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', FundingRoundFactoryMessageBatchSize = 'fundingRoundFactory__messageBatchSize', - FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', + FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', + FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', + FundingRoundFactoryOwner = 'fundingRoundFactory__owner', FundingRoundFactoryQvtVerifier = 'fundingRoundFactory__qvtVerifier', + FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', FundingRoundFactorySignUpDuration = 'fundingRoundFactory__signUpDuration', + FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', + FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', + FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', FundingRoundFactoryVotingDuration = 'fundingRoundFactory__votingDuration', - FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', - FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', - FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', - FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', - FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', - BaseDeposit = 'baseDeposit', - ChallengePeriodDuration = 'challengePeriodDuration', - Controller = 'controller', - MaxRecipients = 'maxRecipients', - Owner = 'owner', - Recipients = 'recipients', - CreatedAt = 'createdAt', - LastUpdatedAt = 'lastUpdatedAt' -} - -export type Recipient_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - recipientRegistry: Maybe; - recipientRegistry_not: Maybe; - recipientRegistry_gt: Maybe; - recipientRegistry_lt: Maybe; - recipientRegistry_gte: Maybe; - recipientRegistry_lte: Maybe; - recipientRegistry_in: Maybe>; - recipientRegistry_not_in: Maybe>; - recipientRegistry_contains: Maybe; - recipientRegistry_contains_nocase: Maybe; - recipientRegistry_not_contains: Maybe; - recipientRegistry_not_contains_nocase: Maybe; - recipientRegistry_starts_with: Maybe; - recipientRegistry_starts_with_nocase: Maybe; - recipientRegistry_not_starts_with: Maybe; - recipientRegistry_not_starts_with_nocase: Maybe; - recipientRegistry_ends_with: Maybe; - recipientRegistry_ends_with_nocase: Maybe; - recipientRegistry_not_ends_with: Maybe; - recipientRegistry_not_ends_with_nocase: Maybe; - recipientRegistry_: Maybe; - recipientIndex: Maybe; - recipientIndex_not: Maybe; - recipientIndex_gt: Maybe; - recipientIndex_lt: Maybe; - recipientIndex_gte: Maybe; - recipientIndex_lte: Maybe; - recipientIndex_in: Maybe>; - recipientIndex_not_in: Maybe>; - requestType: Maybe; - requestType_not: Maybe; - requestType_gt: Maybe; - requestType_lt: Maybe; - requestType_gte: Maybe; - requestType_lte: Maybe; - requestType_in: Maybe>; - requestType_not_in: Maybe>; - requestType_contains: Maybe; - requestType_contains_nocase: Maybe; - requestType_not_contains: Maybe; - requestType_not_contains_nocase: Maybe; - requestType_starts_with: Maybe; - requestType_starts_with_nocase: Maybe; - requestType_not_starts_with: Maybe; - requestType_not_starts_with_nocase: Maybe; - requestType_ends_with: Maybe; - requestType_ends_with_nocase: Maybe; - requestType_not_ends_with: Maybe; - requestType_not_ends_with_nocase: Maybe; - requester: Maybe; - requester_not: Maybe; - requester_gt: Maybe; - requester_lt: Maybe; - requester_gte: Maybe; - requester_lte: Maybe; - requester_in: Maybe>; - requester_not_in: Maybe>; - requester_contains: Maybe; - requester_contains_nocase: Maybe; - requester_not_contains: Maybe; - requester_not_contains_nocase: Maybe; - requester_starts_with: Maybe; - requester_starts_with_nocase: Maybe; - requester_not_starts_with: Maybe; - requester_not_starts_with_nocase: Maybe; - requester_ends_with: Maybe; - requester_ends_with_nocase: Maybe; - requester_not_ends_with: Maybe; - requester_not_ends_with_nocase: Maybe; - submissionTime: Maybe; - submissionTime_not: Maybe; - submissionTime_gt: Maybe; - submissionTime_lt: Maybe; - submissionTime_gte: Maybe; - submissionTime_lte: Maybe; - submissionTime_in: Maybe>; - submissionTime_not_in: Maybe>; - submissionTime_contains: Maybe; - submissionTime_contains_nocase: Maybe; - submissionTime_not_contains: Maybe; - submissionTime_not_contains_nocase: Maybe; - submissionTime_starts_with: Maybe; - submissionTime_starts_with_nocase: Maybe; - submissionTime_not_starts_with: Maybe; - submissionTime_not_starts_with_nocase: Maybe; - submissionTime_ends_with: Maybe; - submissionTime_ends_with_nocase: Maybe; - submissionTime_not_ends_with: Maybe; - submissionTime_not_ends_with_nocase: Maybe; - deposit: Maybe; - deposit_not: Maybe; - deposit_gt: Maybe; - deposit_lt: Maybe; - deposit_gte: Maybe; - deposit_lte: Maybe; - deposit_in: Maybe>; - deposit_not_in: Maybe>; - recipientAddress: Maybe; - recipientAddress_not: Maybe; - recipientAddress_gt: Maybe; - recipientAddress_lt: Maybe; - recipientAddress_gte: Maybe; - recipientAddress_lte: Maybe; - recipientAddress_in: Maybe>; - recipientAddress_not_in: Maybe>; - recipientAddress_contains: Maybe; - recipientAddress_not_contains: Maybe; - recipientMetadata: Maybe; - recipientMetadata_not: Maybe; - recipientMetadata_gt: Maybe; - recipientMetadata_lt: Maybe; - recipientMetadata_gte: Maybe; - recipientMetadata_lte: Maybe; - recipientMetadata_in: Maybe>; - recipientMetadata_not_in: Maybe>; - recipientMetadata_contains: Maybe; - recipientMetadata_contains_nocase: Maybe; - recipientMetadata_not_contains: Maybe; - recipientMetadata_not_contains_nocase: Maybe; - recipientMetadata_starts_with: Maybe; - recipientMetadata_starts_with_nocase: Maybe; - recipientMetadata_not_starts_with: Maybe; - recipientMetadata_not_starts_with_nocase: Maybe; - recipientMetadata_ends_with: Maybe; - recipientMetadata_ends_with_nocase: Maybe; - recipientMetadata_not_ends_with: Maybe; - recipientMetadata_not_ends_with_nocase: Maybe; - rejected: Maybe; - rejected_not: Maybe; - rejected_in: Maybe>; - rejected_not_in: Maybe>; - verified: Maybe; - verified_not: Maybe; - verified_in: Maybe>; - verified_not_in: Maybe>; - voteOptionIndex: Maybe; - voteOptionIndex_not: Maybe; - voteOptionIndex_gt: Maybe; - voteOptionIndex_lt: Maybe; - voteOptionIndex_gte: Maybe; - voteOptionIndex_lte: Maybe; - voteOptionIndex_in: Maybe>; - voteOptionIndex_not_in: Maybe>; - requestResolvedHash: Maybe; - requestResolvedHash_not: Maybe; - requestResolvedHash_gt: Maybe; - requestResolvedHash_lt: Maybe; - requestResolvedHash_gte: Maybe; - requestResolvedHash_lte: Maybe; - requestResolvedHash_in: Maybe>; - requestResolvedHash_not_in: Maybe>; - requestResolvedHash_contains: Maybe; - requestResolvedHash_not_contains: Maybe; - requestSubmittedHash: Maybe; - requestSubmittedHash_not: Maybe; - requestSubmittedHash_gt: Maybe; - requestSubmittedHash_lt: Maybe; - requestSubmittedHash_gte: Maybe; - requestSubmittedHash_lte: Maybe; - requestSubmittedHash_in: Maybe>; - requestSubmittedHash_not_in: Maybe>; - requestSubmittedHash_contains: Maybe; - requestSubmittedHash_not_contains: Maybe; - fundingRounds: Maybe>; - fundingRounds_not: Maybe>; - fundingRounds_contains: Maybe>; - fundingRounds_contains_nocase: Maybe>; - fundingRounds_not_contains: Maybe>; - fundingRounds_not_contains_nocase: Maybe>; - fundingRounds_: Maybe; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; - lastUpdatedAt: Maybe; - lastUpdatedAt_not: Maybe; - lastUpdatedAt_gt: Maybe; - lastUpdatedAt_lt: Maybe; - lastUpdatedAt_gte: Maybe; - lastUpdatedAt_lte: Maybe; - lastUpdatedAt_in: Maybe>; - lastUpdatedAt_not_in: Maybe>; - lastUpdatedAt_contains: Maybe; - lastUpdatedAt_contains_nocase: Maybe; - lastUpdatedAt_not_contains: Maybe; - lastUpdatedAt_not_contains_nocase: Maybe; - lastUpdatedAt_starts_with: Maybe; - lastUpdatedAt_starts_with_nocase: Maybe; - lastUpdatedAt_not_starts_with: Maybe; - lastUpdatedAt_not_starts_with_nocase: Maybe; - lastUpdatedAt_ends_with: Maybe; - lastUpdatedAt_ends_with_nocase: Maybe; - lastUpdatedAt_not_ends_with: Maybe; - lastUpdatedAt_not_ends_with_nocase: Maybe; + Id = 'id', + LastUpdatedAt = 'lastUpdatedAt', + MaxRecipients = 'maxRecipients', + Owner = 'owner', + Recipients = 'recipients' +} + +export type Recipient_Filter = { /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + deposit: InputMaybe; + deposit_gt: InputMaybe; + deposit_gte: InputMaybe; + deposit_in: InputMaybe>; + deposit_lt: InputMaybe; + deposit_lte: InputMaybe; + deposit_not: InputMaybe; + deposit_not_in: InputMaybe>; + fundingRounds: InputMaybe>; + fundingRounds_: InputMaybe; + fundingRounds_contains: InputMaybe>; + fundingRounds_contains_nocase: InputMaybe>; + fundingRounds_not: InputMaybe>; + fundingRounds_not_contains: InputMaybe>; + fundingRounds_not_contains_nocase: InputMaybe>; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + or: InputMaybe>>; + recipientAddress: InputMaybe; + recipientAddress_contains: InputMaybe; + recipientAddress_gt: InputMaybe; + recipientAddress_gte: InputMaybe; + recipientAddress_in: InputMaybe>; + recipientAddress_lt: InputMaybe; + recipientAddress_lte: InputMaybe; + recipientAddress_not: InputMaybe; + recipientAddress_not_contains: InputMaybe; + recipientAddress_not_in: InputMaybe>; + recipientIndex: InputMaybe; + recipientIndex_gt: InputMaybe; + recipientIndex_gte: InputMaybe; + recipientIndex_in: InputMaybe>; + recipientIndex_lt: InputMaybe; + recipientIndex_lte: InputMaybe; + recipientIndex_not: InputMaybe; + recipientIndex_not_in: InputMaybe>; + recipientMetadata: InputMaybe; + recipientMetadata_contains: InputMaybe; + recipientMetadata_contains_nocase: InputMaybe; + recipientMetadata_ends_with: InputMaybe; + recipientMetadata_ends_with_nocase: InputMaybe; + recipientMetadata_gt: InputMaybe; + recipientMetadata_gte: InputMaybe; + recipientMetadata_in: InputMaybe>; + recipientMetadata_lt: InputMaybe; + recipientMetadata_lte: InputMaybe; + recipientMetadata_not: InputMaybe; + recipientMetadata_not_contains: InputMaybe; + recipientMetadata_not_contains_nocase: InputMaybe; + recipientMetadata_not_ends_with: InputMaybe; + recipientMetadata_not_ends_with_nocase: InputMaybe; + recipientMetadata_not_in: InputMaybe>; + recipientMetadata_not_starts_with: InputMaybe; + recipientMetadata_not_starts_with_nocase: InputMaybe; + recipientMetadata_starts_with: InputMaybe; + recipientMetadata_starts_with_nocase: InputMaybe; + recipientRegistry: InputMaybe; + recipientRegistry_: InputMaybe; + recipientRegistry_contains: InputMaybe; + recipientRegistry_contains_nocase: InputMaybe; + recipientRegistry_ends_with: InputMaybe; + recipientRegistry_ends_with_nocase: InputMaybe; + recipientRegistry_gt: InputMaybe; + recipientRegistry_gte: InputMaybe; + recipientRegistry_in: InputMaybe>; + recipientRegistry_lt: InputMaybe; + recipientRegistry_lte: InputMaybe; + recipientRegistry_not: InputMaybe; + recipientRegistry_not_contains: InputMaybe; + recipientRegistry_not_contains_nocase: InputMaybe; + recipientRegistry_not_ends_with: InputMaybe; + recipientRegistry_not_ends_with_nocase: InputMaybe; + recipientRegistry_not_in: InputMaybe>; + recipientRegistry_not_starts_with: InputMaybe; + recipientRegistry_not_starts_with_nocase: InputMaybe; + recipientRegistry_starts_with: InputMaybe; + recipientRegistry_starts_with_nocase: InputMaybe; + rejected: InputMaybe; + rejected_in: InputMaybe>; + rejected_not: InputMaybe; + rejected_not_in: InputMaybe>; + requestResolvedHash: InputMaybe; + requestResolvedHash_contains: InputMaybe; + requestResolvedHash_gt: InputMaybe; + requestResolvedHash_gte: InputMaybe; + requestResolvedHash_in: InputMaybe>; + requestResolvedHash_lt: InputMaybe; + requestResolvedHash_lte: InputMaybe; + requestResolvedHash_not: InputMaybe; + requestResolvedHash_not_contains: InputMaybe; + requestResolvedHash_not_in: InputMaybe>; + requestSubmittedHash: InputMaybe; + requestSubmittedHash_contains: InputMaybe; + requestSubmittedHash_gt: InputMaybe; + requestSubmittedHash_gte: InputMaybe; + requestSubmittedHash_in: InputMaybe>; + requestSubmittedHash_lt: InputMaybe; + requestSubmittedHash_lte: InputMaybe; + requestSubmittedHash_not: InputMaybe; + requestSubmittedHash_not_contains: InputMaybe; + requestSubmittedHash_not_in: InputMaybe>; + requestType: InputMaybe; + requestType_contains: InputMaybe; + requestType_contains_nocase: InputMaybe; + requestType_ends_with: InputMaybe; + requestType_ends_with_nocase: InputMaybe; + requestType_gt: InputMaybe; + requestType_gte: InputMaybe; + requestType_in: InputMaybe>; + requestType_lt: InputMaybe; + requestType_lte: InputMaybe; + requestType_not: InputMaybe; + requestType_not_contains: InputMaybe; + requestType_not_contains_nocase: InputMaybe; + requestType_not_ends_with: InputMaybe; + requestType_not_ends_with_nocase: InputMaybe; + requestType_not_in: InputMaybe>; + requestType_not_starts_with: InputMaybe; + requestType_not_starts_with_nocase: InputMaybe; + requestType_starts_with: InputMaybe; + requestType_starts_with_nocase: InputMaybe; + requester: InputMaybe; + requester_contains: InputMaybe; + requester_contains_nocase: InputMaybe; + requester_ends_with: InputMaybe; + requester_ends_with_nocase: InputMaybe; + requester_gt: InputMaybe; + requester_gte: InputMaybe; + requester_in: InputMaybe>; + requester_lt: InputMaybe; + requester_lte: InputMaybe; + requester_not: InputMaybe; + requester_not_contains: InputMaybe; + requester_not_contains_nocase: InputMaybe; + requester_not_ends_with: InputMaybe; + requester_not_ends_with_nocase: InputMaybe; + requester_not_in: InputMaybe>; + requester_not_starts_with: InputMaybe; + requester_not_starts_with_nocase: InputMaybe; + requester_starts_with: InputMaybe; + requester_starts_with_nocase: InputMaybe; + submissionTime: InputMaybe; + submissionTime_contains: InputMaybe; + submissionTime_contains_nocase: InputMaybe; + submissionTime_ends_with: InputMaybe; + submissionTime_ends_with_nocase: InputMaybe; + submissionTime_gt: InputMaybe; + submissionTime_gte: InputMaybe; + submissionTime_in: InputMaybe>; + submissionTime_lt: InputMaybe; + submissionTime_lte: InputMaybe; + submissionTime_not: InputMaybe; + submissionTime_not_contains: InputMaybe; + submissionTime_not_contains_nocase: InputMaybe; + submissionTime_not_ends_with: InputMaybe; + submissionTime_not_ends_with_nocase: InputMaybe; + submissionTime_not_in: InputMaybe>; + submissionTime_not_starts_with: InputMaybe; + submissionTime_not_starts_with_nocase: InputMaybe; + submissionTime_starts_with: InputMaybe; + submissionTime_starts_with_nocase: InputMaybe; + verified: InputMaybe; + verified_in: InputMaybe>; + verified_not: InputMaybe; + verified_not_in: InputMaybe>; + voteOptionIndex: InputMaybe; + voteOptionIndex_gt: InputMaybe; + voteOptionIndex_gte: InputMaybe; + voteOptionIndex_in: InputMaybe>; + voteOptionIndex_lt: InputMaybe; + voteOptionIndex_lte: InputMaybe; + voteOptionIndex_not: InputMaybe; + voteOptionIndex_not_in: InputMaybe>; }; export enum Recipient_OrderBy { + CreatedAt = 'createdAt', + Deposit = 'deposit', + FundingRounds = 'fundingRounds', Id = 'id', + LastUpdatedAt = 'lastUpdatedAt', + RecipientAddress = 'recipientAddress', + RecipientIndex = 'recipientIndex', + RecipientMetadata = 'recipientMetadata', RecipientRegistry = 'recipientRegistry', - RecipientRegistryId = 'recipientRegistry__id', RecipientRegistryBaseDeposit = 'recipientRegistry__baseDeposit', RecipientRegistryChallengePeriodDuration = 'recipientRegistry__challengePeriodDuration', RecipientRegistryController = 'recipientRegistry__controller', - RecipientRegistryMaxRecipients = 'recipientRegistry__maxRecipients', - RecipientRegistryOwner = 'recipientRegistry__owner', RecipientRegistryCreatedAt = 'recipientRegistry__createdAt', + RecipientRegistryId = 'recipientRegistry__id', RecipientRegistryLastUpdatedAt = 'recipientRegistry__lastUpdatedAt', - RecipientIndex = 'recipientIndex', + RecipientRegistryMaxRecipients = 'recipientRegistry__maxRecipients', + RecipientRegistryOwner = 'recipientRegistry__owner', + Rejected = 'rejected', + RequestResolvedHash = 'requestResolvedHash', + RequestSubmittedHash = 'requestSubmittedHash', RequestType = 'requestType', Requester = 'requester', SubmissionTime = 'submissionTime', - Deposit = 'deposit', - RecipientAddress = 'recipientAddress', - RecipientMetadata = 'recipientMetadata', - Rejected = 'rejected', Verified = 'verified', - VoteOptionIndex = 'voteOptionIndex', - RequestResolvedHash = 'requestResolvedHash', - RequestSubmittedHash = 'requestSubmittedHash', - FundingRounds = 'fundingRounds', - CreatedAt = 'createdAt', - LastUpdatedAt = 'lastUpdatedAt' + VoteOptionIndex = 'voteOptionIndex' } export type Subscription = { __typename?: 'Subscription'; - fundingRoundFactory: Maybe; + /** Access to subgraph metadata */ + _meta: Maybe<_Meta_>; + contribution: Maybe; + contributions: Array; + contributor: Maybe; + contributorRegistries: Array; + contributorRegistry: Maybe; + contributors: Array; + coordinator: Maybe; + coordinators: Array; + donation: Maybe; + donations: Array; + fundingRound: Maybe; fundingRoundFactories: Array; + fundingRoundFactory: Maybe; + fundingRounds: Array; message: Maybe; messages: Array; publicKey: Maybe; publicKeys: Array; - fundingRound: Maybe; - fundingRounds: Array; - recipientRegistry: Maybe; - recipientRegistries: Array; recipient: Maybe; + recipientRegistries: Array; + recipientRegistry: Maybe; recipients: Array; - contributorRegistry: Maybe; - contributorRegistries: Array; - contributor: Maybe; - contributors: Array; - coordinator: Maybe; - coordinators: Array; - contribution: Maybe; - contributions: Array; - vote: Maybe; - votes: Array; - donation: Maybe; - donations: Array; token: Maybe; tokens: Array; - /** Access to subgraph metadata */ - _meta: Maybe<_Meta_>; + vote: Maybe; + votes: Array; }; -export type SubscriptionFundingRoundFactoryArgs = { +export type Subscription_MetaArgs = { + block: InputMaybe; +}; + + +export type SubscriptionContributionArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionFundingRoundFactoriesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionContributionsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionMessageArgs = { +export type SubscriptionContributorArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionMessagesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionContributorRegistriesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionPublicKeyArgs = { +export type SubscriptionContributorRegistryArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionPublicKeysArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionContributorsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionFundingRoundArgs = { +export type SubscriptionCoordinatorArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionFundingRoundsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionCoordinatorsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionRecipientRegistryArgs = { +export type SubscriptionDonationArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionRecipientRegistriesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionDonationsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionRecipientArgs = { +export type SubscriptionFundingRoundArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionRecipientsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionFundingRoundFactoriesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionContributorRegistryArgs = { +export type SubscriptionFundingRoundFactoryArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionContributorRegistriesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionFundingRoundsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionContributorArgs = { +export type SubscriptionMessageArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionContributorsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionMessagesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionCoordinatorArgs = { +export type SubscriptionPublicKeyArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionCoordinatorsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionPublicKeysArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionContributionArgs = { +export type SubscriptionRecipientArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionContributionsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionRecipientRegistriesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionVoteArgs = { +export type SubscriptionRecipientRegistryArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionVotesArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionRecipientsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionDonationArgs = { +export type SubscriptionTokenArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionDonationsArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionTokensArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; }; -export type SubscriptionTokenArgs = { +export type SubscriptionVoteArgs = { + block: InputMaybe; id: Scalars['ID']; - block: Maybe; subgraphError?: _SubgraphErrorPolicy_; }; -export type SubscriptionTokensArgs = { - skip?: Maybe; - first?: Maybe; - orderBy: Maybe; - orderDirection: Maybe; - where: Maybe; - block: Maybe; +export type SubscriptionVotesArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; subgraphError?: _SubgraphErrorPolicy_; -}; - - -export type Subscription_MetaArgs = { - block: Maybe; + where: InputMaybe; }; export type Token = { __typename?: 'Token'; - id: Scalars['ID']; - tokenAddress: Maybe; - symbol: Maybe; - decimals: Maybe; createdAt: Maybe; + decimals: Maybe; + id: Scalars['ID']; lastUpdatedAt: Maybe; + symbol: Maybe; + tokenAddress: Maybe; }; export type Token_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - tokenAddress: Maybe; - tokenAddress_not: Maybe; - tokenAddress_gt: Maybe; - tokenAddress_lt: Maybe; - tokenAddress_gte: Maybe; - tokenAddress_lte: Maybe; - tokenAddress_in: Maybe>; - tokenAddress_not_in: Maybe>; - tokenAddress_contains: Maybe; - tokenAddress_not_contains: Maybe; - symbol: Maybe; - symbol_not: Maybe; - symbol_gt: Maybe; - symbol_lt: Maybe; - symbol_gte: Maybe; - symbol_lte: Maybe; - symbol_in: Maybe>; - symbol_not_in: Maybe>; - symbol_contains: Maybe; - symbol_contains_nocase: Maybe; - symbol_not_contains: Maybe; - symbol_not_contains_nocase: Maybe; - symbol_starts_with: Maybe; - symbol_starts_with_nocase: Maybe; - symbol_not_starts_with: Maybe; - symbol_not_starts_with_nocase: Maybe; - symbol_ends_with: Maybe; - symbol_ends_with_nocase: Maybe; - symbol_not_ends_with: Maybe; - symbol_not_ends_with_nocase: Maybe; - decimals: Maybe; - decimals_not: Maybe; - decimals_gt: Maybe; - decimals_lt: Maybe; - decimals_gte: Maybe; - decimals_lte: Maybe; - decimals_in: Maybe>; - decimals_not_in: Maybe>; - createdAt: Maybe; - createdAt_not: Maybe; - createdAt_gt: Maybe; - createdAt_lt: Maybe; - createdAt_gte: Maybe; - createdAt_lte: Maybe; - createdAt_in: Maybe>; - createdAt_not_in: Maybe>; - createdAt_contains: Maybe; - createdAt_contains_nocase: Maybe; - createdAt_not_contains: Maybe; - createdAt_not_contains_nocase: Maybe; - createdAt_starts_with: Maybe; - createdAt_starts_with_nocase: Maybe; - createdAt_not_starts_with: Maybe; - createdAt_not_starts_with_nocase: Maybe; - createdAt_ends_with: Maybe; - createdAt_ends_with_nocase: Maybe; - createdAt_not_ends_with: Maybe; - createdAt_not_ends_with_nocase: Maybe; - lastUpdatedAt: Maybe; - lastUpdatedAt_not: Maybe; - lastUpdatedAt_gt: Maybe; - lastUpdatedAt_lt: Maybe; - lastUpdatedAt_gte: Maybe; - lastUpdatedAt_lte: Maybe; - lastUpdatedAt_in: Maybe>; - lastUpdatedAt_not_in: Maybe>; - lastUpdatedAt_contains: Maybe; - lastUpdatedAt_contains_nocase: Maybe; - lastUpdatedAt_not_contains: Maybe; - lastUpdatedAt_not_contains_nocase: Maybe; - lastUpdatedAt_starts_with: Maybe; - lastUpdatedAt_starts_with_nocase: Maybe; - lastUpdatedAt_not_starts_with: Maybe; - lastUpdatedAt_not_starts_with_nocase: Maybe; - lastUpdatedAt_ends_with: Maybe; - lastUpdatedAt_ends_with_nocase: Maybe; - lastUpdatedAt_not_ends_with: Maybe; - lastUpdatedAt_not_ends_with_nocase: Maybe; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + decimals: InputMaybe; + decimals_gt: InputMaybe; + decimals_gte: InputMaybe; + decimals_in: InputMaybe>; + decimals_lt: InputMaybe; + decimals_lte: InputMaybe; + decimals_not: InputMaybe; + decimals_not_in: InputMaybe>; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + or: InputMaybe>>; + symbol: InputMaybe; + symbol_contains: InputMaybe; + symbol_contains_nocase: InputMaybe; + symbol_ends_with: InputMaybe; + symbol_ends_with_nocase: InputMaybe; + symbol_gt: InputMaybe; + symbol_gte: InputMaybe; + symbol_in: InputMaybe>; + symbol_lt: InputMaybe; + symbol_lte: InputMaybe; + symbol_not: InputMaybe; + symbol_not_contains: InputMaybe; + symbol_not_contains_nocase: InputMaybe; + symbol_not_ends_with: InputMaybe; + symbol_not_ends_with_nocase: InputMaybe; + symbol_not_in: InputMaybe>; + symbol_not_starts_with: InputMaybe; + symbol_not_starts_with_nocase: InputMaybe; + symbol_starts_with: InputMaybe; + symbol_starts_with_nocase: InputMaybe; + tokenAddress: InputMaybe; + tokenAddress_contains: InputMaybe; + tokenAddress_gt: InputMaybe; + tokenAddress_gte: InputMaybe; + tokenAddress_in: InputMaybe>; + tokenAddress_lt: InputMaybe; + tokenAddress_lte: InputMaybe; + tokenAddress_not: InputMaybe; + tokenAddress_not_contains: InputMaybe; + tokenAddress_not_in: InputMaybe>; }; export enum Token_OrderBy { + CreatedAt = 'createdAt', + Decimals = 'decimals', Id = 'id', - TokenAddress = 'tokenAddress', + LastUpdatedAt = 'lastUpdatedAt', Symbol = 'symbol', - Decimals = 'decimals', - CreatedAt = 'createdAt', - LastUpdatedAt = 'lastUpdatedAt' + TokenAddress = 'tokenAddress' } export type Vote = { __typename?: 'Vote'; - id: Scalars['ID']; contributor: Maybe; fundingRound: Maybe; - voterAddress: Maybe; + id: Scalars['ID']; secret: Maybe; + voterAddress: Maybe; }; export type Vote_Filter = { - id: Maybe; - id_not: Maybe; - id_gt: Maybe; - id_lt: Maybe; - id_gte: Maybe; - id_lte: Maybe; - id_in: Maybe>; - id_not_in: Maybe>; - contributor: Maybe; - contributor_not: Maybe; - contributor_gt: Maybe; - contributor_lt: Maybe; - contributor_gte: Maybe; - contributor_lte: Maybe; - contributor_in: Maybe>; - contributor_not_in: Maybe>; - contributor_contains: Maybe; - contributor_contains_nocase: Maybe; - contributor_not_contains: Maybe; - contributor_not_contains_nocase: Maybe; - contributor_starts_with: Maybe; - contributor_starts_with_nocase: Maybe; - contributor_not_starts_with: Maybe; - contributor_not_starts_with_nocase: Maybe; - contributor_ends_with: Maybe; - contributor_ends_with_nocase: Maybe; - contributor_not_ends_with: Maybe; - contributor_not_ends_with_nocase: Maybe; - contributor_: Maybe; - fundingRound: Maybe; - fundingRound_not: Maybe; - fundingRound_gt: Maybe; - fundingRound_lt: Maybe; - fundingRound_gte: Maybe; - fundingRound_lte: Maybe; - fundingRound_in: Maybe>; - fundingRound_not_in: Maybe>; - fundingRound_contains: Maybe; - fundingRound_contains_nocase: Maybe; - fundingRound_not_contains: Maybe; - fundingRound_not_contains_nocase: Maybe; - fundingRound_starts_with: Maybe; - fundingRound_starts_with_nocase: Maybe; - fundingRound_not_starts_with: Maybe; - fundingRound_not_starts_with_nocase: Maybe; - fundingRound_ends_with: Maybe; - fundingRound_ends_with_nocase: Maybe; - fundingRound_not_ends_with: Maybe; - fundingRound_not_ends_with_nocase: Maybe; - fundingRound_: Maybe; - voterAddress: Maybe; - voterAddress_not: Maybe; - voterAddress_gt: Maybe; - voterAddress_lt: Maybe; - voterAddress_gte: Maybe; - voterAddress_lte: Maybe; - voterAddress_in: Maybe>; - voterAddress_not_in: Maybe>; - voterAddress_contains: Maybe; - voterAddress_not_contains: Maybe; - secret: Maybe; - secret_not: Maybe; - secret_in: Maybe>; - secret_not_in: Maybe>; /** Filter for the block changed event. */ - _change_block: Maybe; - and: Maybe>>; - or: Maybe>>; + _change_block: InputMaybe; + and: InputMaybe>>; + contributor: InputMaybe; + contributor_: InputMaybe; + contributor_contains: InputMaybe; + contributor_contains_nocase: InputMaybe; + contributor_ends_with: InputMaybe; + contributor_ends_with_nocase: InputMaybe; + contributor_gt: InputMaybe; + contributor_gte: InputMaybe; + contributor_in: InputMaybe>; + contributor_lt: InputMaybe; + contributor_lte: InputMaybe; + contributor_not: InputMaybe; + contributor_not_contains: InputMaybe; + contributor_not_contains_nocase: InputMaybe; + contributor_not_ends_with: InputMaybe; + contributor_not_ends_with_nocase: InputMaybe; + contributor_not_in: InputMaybe>; + contributor_not_starts_with: InputMaybe; + contributor_not_starts_with_nocase: InputMaybe; + contributor_starts_with: InputMaybe; + contributor_starts_with_nocase: InputMaybe; + fundingRound: InputMaybe; + fundingRound_: InputMaybe; + fundingRound_contains: InputMaybe; + fundingRound_contains_nocase: InputMaybe; + fundingRound_ends_with: InputMaybe; + fundingRound_ends_with_nocase: InputMaybe; + fundingRound_gt: InputMaybe; + fundingRound_gte: InputMaybe; + fundingRound_in: InputMaybe>; + fundingRound_lt: InputMaybe; + fundingRound_lte: InputMaybe; + fundingRound_not: InputMaybe; + fundingRound_not_contains: InputMaybe; + fundingRound_not_contains_nocase: InputMaybe; + fundingRound_not_ends_with: InputMaybe; + fundingRound_not_ends_with_nocase: InputMaybe; + fundingRound_not_in: InputMaybe>; + fundingRound_not_starts_with: InputMaybe; + fundingRound_not_starts_with_nocase: InputMaybe; + fundingRound_starts_with: InputMaybe; + fundingRound_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + or: InputMaybe>>; + secret: InputMaybe; + secret_in: InputMaybe>; + secret_not: InputMaybe; + secret_not_in: InputMaybe>; + voterAddress: InputMaybe; + voterAddress_contains: InputMaybe; + voterAddress_gt: InputMaybe; + voterAddress_gte: InputMaybe; + voterAddress_in: InputMaybe>; + voterAddress_lt: InputMaybe; + voterAddress_lte: InputMaybe; + voterAddress_not: InputMaybe; + voterAddress_not_contains: InputMaybe; + voterAddress_not_in: InputMaybe>; }; export enum Vote_OrderBy { - Id = 'id', Contributor = 'contributor', - ContributorId = 'contributor__id', - ContributorVerifiedTimeStamp = 'contributor__verifiedTimeStamp', ContributorContributorAddress = 'contributor__contributorAddress', ContributorCreatedAt = 'contributor__createdAt', + ContributorId = 'contributor__id', ContributorLastUpdatedAt = 'contributor__lastUpdatedAt', + ContributorVerifiedTimeStamp = 'contributor__verifiedTimeStamp', FundingRound = 'fundingRound', + FundingRoundContributorCount = 'fundingRound__contributorCount', + FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCreatedAt = 'fundingRound__createdAt', FundingRoundId = 'fundingRound__id', + FundingRoundIsCancelled = 'fundingRound__isCancelled', + FundingRoundIsFinalized = 'fundingRound__isFinalized', + FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', FundingRoundMaci = 'fundingRound__maci', - FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', - FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', FundingRoundNativeToken = 'fundingRound__nativeToken', - FundingRoundStartTime = 'fundingRound__startTime', - FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', - FundingRoundVotingDeadline = 'fundingRound__votingDeadline', - FundingRoundCoordinator = 'fundingRound__coordinator', - FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', - FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundRecipientCount = 'fundingRound__recipientCount', - FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', + FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', + FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', - FundingRoundIsFinalized = 'fundingRound__isFinalized', - FundingRoundIsCancelled = 'fundingRound__isCancelled', - FundingRoundTallyHash = 'fundingRound__tallyHash', - FundingRoundCreatedAt = 'fundingRound__createdAt', - FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', - VoterAddress = 'voterAddress', - Secret = 'secret' + FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVotingDeadline = 'fundingRound__votingDeadline', + Id = 'id', + Secret = 'secret', + VoterAddress = 'voterAddress' } export type _Block_ = { @@ -3130,7 +3142,24 @@ export type GetContributionsAmountQueryVariables = Exact<{ }>; -export type GetContributionsAmountQuery = { __typename?: 'Query', fundingRound: Maybe<{ __typename?: 'FundingRound', contributors: Maybe }>> }>> }> }; +export type GetContributionsAmountQuery = { __typename?: 'Query', contributions: Array<{ __typename?: 'Contribution', amount: any | null }> }; + +export type GetContributorIndexQueryVariables = Exact<{ + fundingRoundAddress: Scalars['ID']; + publicKeyId: Scalars['ID']; +}>; + + +export type GetContributorIndexQuery = { __typename?: 'Query', publicKey: { __typename?: 'PublicKey', id: string, stateIndex: any | null } | null }; + +export type GetContributorMessagesQueryVariables = Exact<{ + fundingRoundAddress: Scalars['String']; + pubKey: Scalars['String']; + contributorAddress: Scalars['Bytes']; +}>; + + +export type GetContributorMessagesQuery = { __typename?: 'Query', messages: Array<{ __typename?: 'Message', id: string, data: Array | null, iv: any, timestamp: string | null, blockNumber: any, transactionIndex: any }> }; export type GetContributorVotesQueryVariables = Exact<{ fundingRoundAddress: Scalars['ID']; @@ -3138,28 +3167,47 @@ export type GetContributorVotesQueryVariables = Exact<{ }>; -export type GetContributorVotesQuery = { __typename?: 'Query', fundingRound: Maybe<{ __typename?: 'FundingRound', id: string, contributors: Maybe> }>> }> }; +export type GetContributorVotesQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', id: string, contributors: Array<{ __typename?: 'Contributor', votes: Array<{ __typename?: 'Vote', id: string }> | null }> | null } | null }; + +export type GetContributorVotesForAllRoundsQueryVariables = Exact<{ + contributorAddress: Scalars['ID']; +}>; + + +export type GetContributorVotesForAllRoundsQuery = { __typename?: 'Query', contributors: Array<{ __typename?: 'Contributor', votes: Array<{ __typename?: 'Vote', id: string }> | null }> }; export type GetCurrentRoundQueryVariables = Exact<{ fundingRoundFactoryAddress: Scalars['ID']; }>; -export type GetCurrentRoundQuery = { __typename?: 'Query', fundingRoundFactory: Maybe<{ __typename?: 'FundingRoundFactory', currentRound: Maybe<{ __typename?: 'FundingRound', id: string }> }> }; +export type GetCurrentRoundQuery = { __typename?: 'Query', fundingRoundFactory: { __typename?: 'FundingRoundFactory', currentRound: { __typename?: 'FundingRound', id: string } | null } | null }; export type GetFactoryInfoQueryVariables = Exact<{ factoryAddress: Scalars['ID']; }>; -export type GetFactoryInfoQuery = { __typename?: 'Query', fundingRoundFactory: Maybe<{ __typename?: 'FundingRoundFactory', contributorRegistryAddress: Maybe, nativeTokenInfo: Maybe<{ __typename?: 'Token', tokenAddress: Maybe, symbol: Maybe, decimals: Maybe }> }> }; +export type GetFactoryInfoQuery = { __typename?: 'Query', fundingRoundFactory: { __typename?: 'FundingRoundFactory', contributorRegistryAddress: any | null, nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; + +export type GetLatestBlockNumberQueryVariables = Exact<{ [key: string]: never; }>; + + +export type GetLatestBlockNumberQuery = { __typename?: 'Query', _meta: { __typename?: '_Meta_', block: { __typename?: '_Block_', number: number } } | null }; export type GetProjectQueryVariables = Exact<{ recipientId: Scalars['ID']; }>; -export type GetProjectQuery = { __typename?: 'Query', recipients: Array<{ __typename?: 'Recipient', id: string, requestType: Maybe, recipientAddress: Maybe, recipientMetadata: Maybe, recipientIndex: Maybe, submissionTime: Maybe, rejected: Maybe, verified: Maybe }> }; +export type GetProjectQuery = { __typename?: 'Query', recipients: Array<{ __typename?: 'Recipient', id: string, requestType: string | null, recipientAddress: any | null, recipientMetadata: string | null, recipientIndex: any | null, submissionTime: string | null, rejected: boolean | null, verified: boolean | null }> }; + +export type GetPublicKeyQueryVariables = Exact<{ + pubKey: Scalars['ID']; +}>; + + +export type GetPublicKeyQuery = { __typename?: 'Query', publicKey: { __typename?: 'PublicKey', id: string } | null }; export type GetRecipientQueryVariables = Exact<{ registryAddress: Scalars['ID']; @@ -3167,14 +3215,22 @@ export type GetRecipientQueryVariables = Exact<{ }>; -export type GetRecipientQuery = { __typename?: 'Query', recipientRegistry: Maybe<{ __typename?: 'RecipientRegistry', recipients: Maybe, recipientAddress: Maybe, recipientMetadata: Maybe, submissionTime: Maybe, rejected: Maybe, verified: Maybe }>> }> }; +export type GetRecipientQuery = { __typename?: 'Query', recipientRegistry: { __typename?: 'RecipientRegistry', recipients: Array<{ __typename?: 'Recipient', id: string, requestType: string | null, recipientAddress: any | null, recipientMetadata: string | null, submissionTime: string | null, rejected: boolean | null, verified: boolean | null }> | null } | null }; + +export type GetRecipientByIndexQueryVariables = Exact<{ + registryAddress: Scalars['String']; + recipientIndex: Scalars['BigInt']; +}>; + + +export type GetRecipientByIndexQuery = { __typename?: 'Query', recipients: Array<{ __typename?: 'Recipient', id: string, recipientIndex: any | null, recipientAddress: any | null, recipientMetadata: string | null }> }; export type GetRecipientBySubmitHashQueryVariables = Exact<{ transactionHash: Scalars['Bytes']; }>; -export type GetRecipientBySubmitHashQuery = { __typename?: 'Query', recipients: Array<{ __typename?: 'Recipient', id: string, recipientMetadata: Maybe, recipientAddress: Maybe, requester: Maybe, submissionTime: Maybe }> }; +export type GetRecipientBySubmitHashQuery = { __typename?: 'Query', recipients: Array<{ __typename?: 'Recipient', id: string, recipientMetadata: string | null, recipientAddress: any | null, requester: string | null, submissionTime: string | null }> }; export type GetRecipientDonationsQueryVariables = Exact<{ fundingRoundAddress: Scalars['String']; @@ -3190,43 +3246,66 @@ export type GetRecipientRegistryInfoQueryVariables = Exact<{ }>; -export type GetRecipientRegistryInfoQuery = { __typename?: 'Query', fundingRoundFactory: Maybe<{ __typename?: 'FundingRoundFactory', recipientRegistry: Maybe<{ __typename?: 'RecipientRegistry', id: string, owner: Maybe, baseDeposit: Maybe, challengePeriodDuration: Maybe }>, currentRound: Maybe<{ __typename?: 'FundingRound', id: string, recipientRegistry: Maybe<{ __typename?: 'RecipientRegistry', id: string, owner: Maybe, baseDeposit: Maybe, challengePeriodDuration: Maybe }> }> }> }; +export type GetRecipientRegistryInfoQuery = { __typename?: 'Query', fundingRoundFactory: { __typename?: 'FundingRoundFactory', recipientRegistry: { __typename?: 'RecipientRegistry', id: string, owner: any | null, baseDeposit: any | null, challengePeriodDuration: any | null } | null, currentRound: { __typename?: 'FundingRound', id: string, recipientRegistry: { __typename?: 'RecipientRegistry', id: string, owner: any | null, baseDeposit: any | null, challengePeriodDuration: any | null } | null } | null } | null }; export type GetRecipientsQueryVariables = Exact<{ registryAddress: Scalars['String']; }>; -export type GetRecipientsQuery = { __typename?: 'Query', recipients: Array<{ __typename?: 'Recipient', id: string, recipientIndex: Maybe, requestType: Maybe, requester: Maybe, recipientAddress: Maybe, recipientMetadata: Maybe, requestSubmittedHash: Maybe, requestResolvedHash: Maybe, submissionTime: Maybe, rejected: Maybe, verified: Maybe }> }; +export type GetRecipientsQuery = { __typename?: 'Query', recipients: Array<{ __typename?: 'Recipient', id: string, recipientIndex: any | null, requestType: string | null, requester: string | null, recipientAddress: any | null, recipientMetadata: string | null, requestSubmittedHash: any | null, requestResolvedHash: any | null, submissionTime: string | null, rejected: boolean | null, verified: boolean | null }> }; export type GetRoundInfoQueryVariables = Exact<{ fundingRoundAddress: Scalars['ID']; }>; -export type GetRoundInfoQuery = { __typename?: 'Query', fundingRound: Maybe<{ __typename?: 'FundingRound', id: string, maci: Maybe, recipientRegistryAddress: Maybe, contributorRegistryAddress: Maybe, voiceCreditFactor: Maybe, isFinalized: Maybe, isCancelled: Maybe, contributorCount: any, totalSpent: Maybe, matchingPoolSize: Maybe, nativeTokenInfo: Maybe<{ __typename?: 'Token', tokenAddress: Maybe, symbol: Maybe, decimals: Maybe }> }> }; +export type GetRoundInfoQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', id: string, maci: any | null, recipientRegistryAddress: any | null, contributorRegistryAddress: any | null, voiceCreditFactor: any | null, isFinalized: boolean | null, isCancelled: boolean | null, contributorCount: any, totalSpent: any | null, matchingPoolSize: any | null, nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; export type GetRoundsQueryVariables = Exact<{ [key: string]: never; }>; -export type GetRoundsQuery = { __typename?: 'Query', fundingRounds: Array<{ __typename?: 'FundingRound', id: string, isFinalized: Maybe, isCancelled: Maybe, startTime: Maybe }> }; +export type GetRoundsQuery = { __typename?: 'Query', fundingRounds: Array<{ __typename?: 'FundingRound', id: string, isFinalized: boolean | null, isCancelled: boolean | null, startTime: any | null }> }; export type GetTokenInfoQueryVariables = Exact<{ fundingRoundAddress: Scalars['ID']; }>; -export type GetTokenInfoQuery = { __typename?: 'Query', fundingRound: Maybe<{ __typename?: 'FundingRound', nativeTokenInfo: Maybe<{ __typename?: 'Token', tokenAddress: Maybe, symbol: Maybe, decimals: Maybe }> }> }; +export type GetTokenInfoQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; export const GetContributionsAmountDocument = gql` query GetContributionsAmount($fundingRoundAddress: ID!, $contributorAddress: ID!) { - fundingRound(id: $fundingRoundAddress) { - contributors(where: {id: $contributorAddress}) { - contributions { - amount - } - } + contributions( + where: {contributor_: {id: $contributorAddress}, fundingRound_: {id: $fundingRoundAddress}} + ) { + amount + } +} + `; +export const GetContributorIndexDocument = gql` + query GetContributorIndex($fundingRoundAddress: ID!, $publicKeyId: ID!) { + publicKey(id: $publicKeyId) { + id + stateIndex + } +} + `; +export const GetContributorMessagesDocument = gql` + query GetContributorMessages($fundingRoundAddress: String!, $pubKey: String!, $contributorAddress: Bytes!) { + messages( + where: {fundingRound: $fundingRoundAddress, publicKey: $pubKey, submittedBy: $contributorAddress} + first: 1000 + orderBy: blockNumber + orderDirection: desc + ) { + id + data + iv + timestamp + blockNumber + transactionIndex } } `; @@ -3242,6 +3321,15 @@ export const GetContributorVotesDocument = gql` } } `; +export const GetContributorVotesForAllRoundsDocument = gql` + query GetContributorVotesForAllRounds($contributorAddress: ID!) { + contributors(where: {id: $contributorAddress}) { + votes { + id + } + } +} + `; export const GetCurrentRoundDocument = gql` query GetCurrentRound($fundingRoundFactoryAddress: ID!) { fundingRoundFactory(id: $fundingRoundFactoryAddress) { @@ -3263,6 +3351,15 @@ export const GetFactoryInfoDocument = gql` } } `; +export const GetLatestBlockNumberDocument = gql` + query GetLatestBlockNumber { + _meta { + block { + number + } + } +} + `; export const GetProjectDocument = gql` query GetProject($recipientId: ID!) { recipients(where: {id: $recipientId}) { @@ -3277,6 +3374,13 @@ export const GetProjectDocument = gql` } } `; +export const GetPublicKeyDocument = gql` + query GetPublicKey($pubKey: ID!) { + publicKey(id: $pubKey) { + id + } +} + `; export const GetRecipientDocument = gql` query GetRecipient($registryAddress: ID!, $recipientId: ID!) { recipientRegistry(id: $registryAddress) { @@ -3292,6 +3396,18 @@ export const GetRecipientDocument = gql` } } `; +export const GetRecipientByIndexDocument = gql` + query GetRecipientByIndex($registryAddress: String!, $recipientIndex: BigInt!) { + recipients( + where: {recipientRegistry: $registryAddress, recipientIndex: $recipientIndex} + ) { + id + recipientIndex + recipientAddress + recipientMetadata + } +} + `; export const GetRecipientBySubmitHashDocument = gql` query GetRecipientBySubmitHash($transactionHash: Bytes!) { recipients(where: {requestSubmittedHash: $transactionHash}) { @@ -3393,51 +3509,69 @@ export const GetTokenInfoDocument = gql` } `; -export type SdkFunctionWrapper = (action: (requestHeaders?:Record) => Promise, operationName: string) => Promise; +export type SdkFunctionWrapper = (action: (requestHeaders?:Record) => Promise, operationName: string, operationType?: string) => Promise; -const defaultWrapper: SdkFunctionWrapper = (action, _operationName) => action(); +const defaultWrapper: SdkFunctionWrapper = (action, _operationName, _operationType) => action(); export function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) { return { GetContributionsAmount(variables: GetContributionsAmountQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetContributionsAmountDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetContributionsAmount'); + return withWrapper((wrappedRequestHeaders) => client.request(GetContributionsAmountDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetContributionsAmount', 'query'); + }, + GetContributorIndex(variables: GetContributorIndexQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { + return withWrapper((wrappedRequestHeaders) => client.request(GetContributorIndexDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetContributorIndex', 'query'); + }, + GetContributorMessages(variables: GetContributorMessagesQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { + return withWrapper((wrappedRequestHeaders) => client.request(GetContributorMessagesDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetContributorMessages', 'query'); }, GetContributorVotes(variables: GetContributorVotesQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetContributorVotesDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetContributorVotes'); + return withWrapper((wrappedRequestHeaders) => client.request(GetContributorVotesDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetContributorVotes', 'query'); + }, + GetContributorVotesForAllRounds(variables: GetContributorVotesForAllRoundsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { + return withWrapper((wrappedRequestHeaders) => client.request(GetContributorVotesForAllRoundsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetContributorVotesForAllRounds', 'query'); }, GetCurrentRound(variables: GetCurrentRoundQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetCurrentRoundDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetCurrentRound'); + return withWrapper((wrappedRequestHeaders) => client.request(GetCurrentRoundDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetCurrentRound', 'query'); }, GetFactoryInfo(variables: GetFactoryInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetFactoryInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetFactoryInfo'); + return withWrapper((wrappedRequestHeaders) => client.request(GetFactoryInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetFactoryInfo', 'query'); + }, + GetLatestBlockNumber(variables?: GetLatestBlockNumberQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { + return withWrapper((wrappedRequestHeaders) => client.request(GetLatestBlockNumberDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetLatestBlockNumber', 'query'); }, GetProject(variables: GetProjectQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetProjectDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetProject'); + return withWrapper((wrappedRequestHeaders) => client.request(GetProjectDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetProject', 'query'); + }, + GetPublicKey(variables: GetPublicKeyQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { + return withWrapper((wrappedRequestHeaders) => client.request(GetPublicKeyDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetPublicKey', 'query'); }, GetRecipient(variables: GetRecipientQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipient'); + return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipient', 'query'); + }, + GetRecipientByIndex(variables: GetRecipientByIndexQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { + return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientByIndexDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipientByIndex', 'query'); }, GetRecipientBySubmitHash(variables: GetRecipientBySubmitHashQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientBySubmitHashDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipientBySubmitHash'); + return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientBySubmitHashDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipientBySubmitHash', 'query'); }, GetRecipientDonations(variables: GetRecipientDonationsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientDonationsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipientDonations'); + return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientDonationsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipientDonations', 'query'); }, GetRecipientRegistryInfo(variables: GetRecipientRegistryInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientRegistryInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipientRegistryInfo'); + return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientRegistryInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipientRegistryInfo', 'query'); }, GetRecipients(variables: GetRecipientsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipients'); + return withWrapper((wrappedRequestHeaders) => client.request(GetRecipientsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRecipients', 'query'); }, GetRoundInfo(variables: GetRoundInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetRoundInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRoundInfo'); + return withWrapper((wrappedRequestHeaders) => client.request(GetRoundInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRoundInfo', 'query'); }, GetRounds(variables?: GetRoundsQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetRoundsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRounds'); + return withWrapper((wrappedRequestHeaders) => client.request(GetRoundsDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetRounds', 'query'); }, GetTokenInfo(variables: GetTokenInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetTokenInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetTokenInfo'); + return withWrapper((wrappedRequestHeaders) => client.request(GetTokenInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetTokenInfo', 'query'); } }; } diff --git a/vue-app/src/graphql/queries/GetContributionsAmount.graphql b/vue-app/src/graphql/queries/GetContributionsAmount.graphql index 7ceb3f0fc..27a2f89a4 100644 --- a/vue-app/src/graphql/queries/GetContributionsAmount.graphql +++ b/vue-app/src/graphql/queries/GetContributionsAmount.graphql @@ -2,11 +2,10 @@ query GetContributionsAmount( $fundingRoundAddress: ID! $contributorAddress: ID! ) { - fundingRound(id: $fundingRoundAddress) { - contributors(where: { id: $contributorAddress }) { - contributions { - amount - } - } + contributions(where: { + contributor_: { id: $contributorAddress }, + fundingRound_: { id: $fundingRoundAddress}}) + { + amount } } diff --git a/vue-app/src/graphql/queries/GetContributorIndex.graphql b/vue-app/src/graphql/queries/GetContributorIndex.graphql new file mode 100644 index 000000000..599085f8b --- /dev/null +++ b/vue-app/src/graphql/queries/GetContributorIndex.graphql @@ -0,0 +1,9 @@ +query GetContributorIndex( + $fundingRoundAddress: ID! + $publicKeyId: ID! +) { + publicKey(id: $publicKeyId) { + id + stateIndex + } +} \ No newline at end of file diff --git a/vue-app/src/graphql/queries/GetContributorMessages.graphql b/vue-app/src/graphql/queries/GetContributorMessages.graphql new file mode 100644 index 000000000..c50d866db --- /dev/null +++ b/vue-app/src/graphql/queries/GetContributorMessages.graphql @@ -0,0 +1,22 @@ +query GetContributorMessages( + $fundingRoundAddress: String! + $pubKey: String! + $contributorAddress: Bytes! +) { + messages( + where: { + fundingRound: $fundingRoundAddress, + publicKey: $pubKey, + submittedBy: $contributorAddress + }, + first: 1000 + orderBy: blockNumber, orderDirection: desc) + { + id + data + iv + timestamp + blockNumber + transactionIndex + } +} diff --git a/vue-app/src/graphql/queries/GetContributorVotesForAllRounds.graphql b/vue-app/src/graphql/queries/GetContributorVotesForAllRounds.graphql new file mode 100644 index 000000000..ac2b5472a --- /dev/null +++ b/vue-app/src/graphql/queries/GetContributorVotesForAllRounds.graphql @@ -0,0 +1,7 @@ +query GetContributorVotesForAllRounds($contributorAddress: ID!) { + contributors(where: { id: $contributorAddress }) { + votes { + id + } + } +} diff --git a/vue-app/src/graphql/queries/GetLatestBlockNumber.graphql b/vue-app/src/graphql/queries/GetLatestBlockNumber.graphql new file mode 100644 index 000000000..01d9ab729 --- /dev/null +++ b/vue-app/src/graphql/queries/GetLatestBlockNumber.graphql @@ -0,0 +1,7 @@ +query GetLatestBlockNumber { + _meta { + block { + number + } + } +} diff --git a/vue-app/src/graphql/queries/GetPublicKey.graphql b/vue-app/src/graphql/queries/GetPublicKey.graphql new file mode 100644 index 000000000..14d9008bf --- /dev/null +++ b/vue-app/src/graphql/queries/GetPublicKey.graphql @@ -0,0 +1,5 @@ +query GetPublicKey($pubKey: ID!) { + publicKey(id: $pubKey) { + id + } +} diff --git a/vue-app/src/graphql/queries/GetRecipientByIndex.graphql b/vue-app/src/graphql/queries/GetRecipientByIndex.graphql new file mode 100644 index 000000000..9fbcc324d --- /dev/null +++ b/vue-app/src/graphql/queries/GetRecipientByIndex.graphql @@ -0,0 +1,8 @@ +query GetRecipientByIndex($registryAddress: String!, $recipientIndex: BigInt!) { + recipients(where: { recipientRegistry: $registryAddress, recipientIndex: $recipientIndex }) { + id + recipientIndex + recipientAddress + recipientMetadata + } +} diff --git a/vue-app/src/locales/cn.json b/vue-app/src/locales/cn.json index 7516d2f2d..611b26388 100644 --- a/vue-app/src/locales/cn.json +++ b/vue-app/src/locales/cn.json @@ -1208,5 +1208,18 @@ "cancel": "取消", "copied": "已复制!", "more_on_maci": "更多关于 MACI", - "add_project": "添加项目" + "add_project": "添加项目", + "errorModal": { + "header": "出错了!", + "wrong_key": "错误的钥匙,请尝试另一个以您钱包地址为名的钥匙。" + }, + "passkeyModal": { + "header_create_or_use_existing": "创建新的或使用现有的密码?", + "header_create": "创建新密码?", + "usage": "这个密码将用于加密您的选票。您需要相同的密码才能查看您的购物车和重新分配资金。", + "create_new_key": "新的", + "use_existing_key": "现有的", + "ok": "好的", + "cancel": "取消" + } } diff --git a/vue-app/src/locales/en.json b/vue-app/src/locales/en.json index 153d8d49c..a3f22ae72 100644 --- a/vue-app/src/locales/en.json +++ b/vue-app/src/locales/en.json @@ -1208,5 +1208,18 @@ "cancel": "Cancel", "copied": "Copied!", "more_on_maci": "More on MACI", - "add_project": "Add project" + "add_project": "Add project", + "errorModal": { + "header": "Error!", + "wrong_key": "Incorrect key! Please try again with a different key. The name of the key should match the wallet address unless you chose an existing key with a different name or manually renamed the key." + }, + "passkeyModal": { + "header_create_or_use_existing": "Create or use existing passkey?", + "header_create": "Create a new passkey?", + "usage": "The passkey will be used to encrypt your votes. You will need the same passkey to view your cart and to reallocate funds.", + "create_new_key": "Create new", + "use_existing_key": "Use existing", + "ok": "Ok", + "cancel": "Cancel" + } } diff --git a/vue-app/src/locales/es.json b/vue-app/src/locales/es.json index 153d8d49c..a3f22ae72 100644 --- a/vue-app/src/locales/es.json +++ b/vue-app/src/locales/es.json @@ -1208,5 +1208,18 @@ "cancel": "Cancel", "copied": "Copied!", "more_on_maci": "More on MACI", - "add_project": "Add project" + "add_project": "Add project", + "errorModal": { + "header": "Error!", + "wrong_key": "Incorrect key! Please try again with a different key. The name of the key should match the wallet address unless you chose an existing key with a different name or manually renamed the key." + }, + "passkeyModal": { + "header_create_or_use_existing": "Create or use existing passkey?", + "header_create": "Create a new passkey?", + "usage": "The passkey will be used to encrypt your votes. You will need the same passkey to view your cart and to reallocate funds.", + "create_new_key": "Create new", + "use_existing_key": "Use existing", + "ok": "Ok", + "cancel": "Cancel" + } } diff --git a/vue-app/src/main.ts b/vue-app/src/main.ts index d747ba913..47e0b1bd8 100644 --- a/vue-app/src/main.ts +++ b/vue-app/src/main.ts @@ -4,8 +4,6 @@ import router from './router' import store from './store' import Web3 from './plugins/Web3' -// import i18n from './plugins/i18n' - import Meta from 'vue-meta' import VModal from 'vue-js-modal' import VTooltip from 'v-tooltip' diff --git a/vue-app/src/plugins/Web3/index.ts b/vue-app/src/plugins/Web3/index.ts index 7ac3d3a2d..52e452888 100644 --- a/vue-app/src/plugins/Web3/index.ts +++ b/vue-app/src/plugins/Web3/index.ts @@ -1,11 +1,9 @@ -import { LOGIN_MESSAGE } from '@/api/user' -import { sha256 } from '@/utils/crypto' import { Web3Provider } from '@ethersproject/providers' import WalletConnectProvider from '@walletconnect/web3-provider' import MetamaskConnector from './connectors/MetamaskConnector' import WalletConnectConnector from './connectors/WalletConnectConnector' -import { lsGet, lsSet, lsRemove } from '@/utils/localStorage' import { CHAIN_INFO } from './constants/chains' +import { lsGet, lsSet, lsRemove } from '@/utils/localStorage' export type Wallet = 'metamask' | 'walletconnect' @@ -22,7 +20,6 @@ export default { CONNECTED_PROVIDER, null ) - const plugin = new Vue({ data: { accounts: [], @@ -50,11 +47,6 @@ export default { const conn = await connector.connect() const account = conn.accounts[0] - const signature = await conn.provider.request({ - method: 'personal_sign', - params: [LOGIN_MESSAGE, account], - }) - // Save chosen provider to localStorage lsSet(CONNECTED_PROVIDER, wallet) @@ -74,7 +66,6 @@ export default { `Wrong Network. Please connect to the ${CHAIN_INFO[supportedChainId].label} Ethereum network.` ) } - // Populate the plugin with the initial data plugin.accounts = conn.accounts plugin.provider = conn.provider @@ -86,7 +77,6 @@ export default { // store them and read them directly from the plugin, `this.$web3`. // Separate the concept of User from here. Create the User when the // connection is made, from the consumer. - encryptionKey: sha256(signature), balance: null, contribution: null, walletProvider: new Web3Provider(conn.provider), @@ -111,7 +101,6 @@ export default { plugin.disconnectWallet = () => { plugin.accounts = [] plugin.chainId = null - lsRemove(CONNECTED_PROVIDER) if (plugin.provider?.disconnect) { plugin.provider.disconnect() } diff --git a/vue-app/src/store/action-types.ts b/vue-app/src/store/action-types.ts index de00f313e..02e04f87d 100644 --- a/vue-app/src/store/action-types.ts +++ b/vue-app/src/store/action-types.ts @@ -5,13 +5,15 @@ export const LOAD_MACI_FACTORY_INFO = 'LOAD_MACI_FACTORY_INFO' export const LOAD_ROUND_INFO = 'LOAD_ROUND_INFO' export const LOAD_RECIPIENT_REGISTRY_INFO = 'LOAD_RECIPIENT_REGISTRY_INFO' export const LOAD_USER_INFO = 'LOAD_USER_INFO' +export const CREATE_ENCRYPTION_KEY_FROM_EXISTING = + 'CREATE_ENCRYPTION_KEY_FROM_EXISTING' +export const LOAD_OR_CREATE_ENCRYPTION_KEY = 'LOAD_OR_CREATE_ENCRYPTION_KEY' +export const LOAD_ENCRYPTION_KEY = 'LOAD_ENCRYPTION_KEY' export const SAVE_CART = 'SAVE_CART' export const LOAD_CART = 'LOAD_CART' -export const UNWATCH_CART = 'UNWATCH_CART' +export const LOAD_CART_DATA = 'LOAD_CART_DATA' export const SAVE_CONTRIBUTOR_DATA = 'SAVE_CONTRIBUTOR_DATA' export const LOAD_CONTRIBUTOR_DATA = 'LOAD_CONTRIBUTOR_DATA' -export const UNWATCH_CONTRIBUTOR_DATA = 'UNWATCH_CONTRIBUTOR_DATA' -export const LOGIN_USER = 'LOGIN_USER' export const LOGOUT_USER = 'LOGOUT_USER' export const LOAD_COMMITTED_CART = 'LOAD_COMMITTED_CART' export const SAVE_COMMITTED_CART_DISPATCH = 'SAVE_COMITTED_CART_DISPATCH' diff --git a/vue-app/src/store/actions.ts b/vue-app/src/store/actions.ts index 2f16894b2..4fccbf697 100644 --- a/vue-app/src/store/actions.ts +++ b/vue-app/src/store/actions.ts @@ -9,22 +9,25 @@ import { deserializeCart, getContributorStorageKey, serializeContributorData, - deserializeContributorData, getContributionAmount, hasContributorVoted, + hasContributorVotedInPreviousRounds, + getContributorIndex, + Contributor, } from '@/api/contributions' -import { loginUser, logoutUser } from '@/api/gun' -import { RoundStatus } from '@/api/round' +import { RoundStatus, getCurrentRound } from '@/api/round' import { Rounds } from '@/api/rounds' import { storage } from '@/api/storage' import { getTally } from '@/api/tally' import { getEtherBalance, getTokenBalance, isVerifiedUser } from '@/api/user' import { getRegistryInfo } from '@/api/recipient-registry-optimistic' +import { Keypair } from '@clrfund/maci-utils' // Constants import { LOAD_BRIGHT_ID, LOAD_CART, + LOAD_CART_DATA, LOAD_COMMITTED_CART, LOAD_CONTRIBUTOR_DATA, LOAD_FACTORY_INFO, @@ -33,15 +36,15 @@ import { LOAD_ROUND_INFO, LOAD_ROUNDS, LOAD_TALLY, + CREATE_ENCRYPTION_KEY_FROM_EXISTING, + LOAD_OR_CREATE_ENCRYPTION_KEY, + LOAD_ENCRYPTION_KEY, LOAD_USER_INFO, - LOGIN_USER, LOGOUT_USER, SAVE_CART, SAVE_COMMITTED_CART_DISPATCH, SAVE_CONTRIBUTOR_DATA, SELECT_ROUND, - UNWATCH_CART, - UNWATCH_CONTRIBUTOR_DATA, } from './action-types' import { ADD_CART_ITEM, @@ -60,25 +63,32 @@ import { SET_HAS_VOTED, SET_FACTORY, SET_MACI_FACTORY, + TOGGLE_SHOW_CART_PANEL, + SET_CART_LOADED, } from './mutation-types' // Utils -import { ensLookup } from '@/utils/accounts' +import { + createOrGetEncryptionKey, + ensLookup, + getFirstEncryptionKey, + getEncryptionKey, +} from '@/utils/accounts' import { factory, UserRegistryType, userRegistryType } from '@/api/core' import { BrightId, getBrightId } from '@/api/bright-id' import { getFactoryInfo } from '@/api/factory' import { getMACIFactoryInfo } from '@/api/maci-factory' +import { getCommittedCart, hasUncommittedCart } from '@/api/cart' const actions = { //TODO: also commit SET_CURRENT_FACTORY_ADDRESS on this action, should be passed optionally and default to env variable - [SELECT_ROUND]({ commit, dispatch, state }, roundAddress: string) { + [SELECT_ROUND]({ commit, state }, roundAddress: string) { if (state.currentRoundAddress) { // Reset everything that depends on round - dispatch(UNWATCH_CART) - dispatch(UNWATCH_CONTRIBUTOR_DATA) commit(SET_CONTRIBUTION, null) commit(SET_CONTRIBUTOR, null) commit(CLEAR_CART) + commit(SET_CART_LOADED, false) commit(SET_RECIPIENT_REGISTRY_ADDRESS, null) commit(SET_RECIPIENT_REGISTRY_INFO, null) commit(SET_CURRENT_ROUND, null) @@ -136,6 +146,50 @@ const actions = { commit(SET_RECIPIENT_REGISTRY_ADDRESS, recipientRegistryAddress) commit(SET_RECIPIENT_REGISTRY_INFO, info) }, + async [LOAD_OR_CREATE_ENCRYPTION_KEY]({ commit, state }) { + if (!state.currentUser || !state.currentRoundAddress) { + return + } + + const encryptionKey = await createOrGetEncryptionKey( + state.currentUser.walletAddress, + state.currentRoundAddress + ) + + commit(SET_CURRENT_USER, { + ...state.currentUser, + encryptionKey, + }) + }, + async [CREATE_ENCRYPTION_KEY_FROM_EXISTING]({ commit, state }) { + if (!state.currentUser || !state.currentRoundAddress) { + return + } + + const encryptionKey = await getFirstEncryptionKey( + state.currentUser.walletAddress + ) + + commit(SET_CURRENT_USER, { + ...state.currentUser, + encryptionKey, + }) + }, + async [LOAD_ENCRYPTION_KEY]({ commit, state }) { + if (!state.currentUser) { + return + } + let encryptionKey: string | undefined + const { walletAddress } = state.currentUser + const roundAddress = state.currentRoundAddress || (await getCurrentRound()) + const hasVoted = await hasContributorVoted(roundAddress, walletAddress) + const hasUncommited = hasUncommittedCart(roundAddress, walletAddress) + if (hasVoted || hasUncommited) { + encryptionKey = await getEncryptionKey(walletAddress, roundAddress) + } + const user = { ...state.currentUser, encryptionKey } + commit(SET_CURRENT_USER, user) + }, async [LOAD_USER_INFO]({ commit, state }) { if (!state.currentUser) { return @@ -158,7 +212,6 @@ const actions = { state.currentRound.fundingRoundAddress, state.currentUser.walletAddress ) - const hasVoted = await hasContributorVoted( state.currentRound.fundingRoundAddress, state.currentUser.walletAddress @@ -188,12 +241,17 @@ const actions = { let ensName: string | null = state.currentUser.ensName ensName = await ensLookup(state.currentUser.walletAddress) + const votedInPreviousRounds = await hasContributorVotedInPreviousRounds( + state.currentUser.walletAddress + ) + commit(SET_CURRENT_USER, { ...state.currentUser, isRegistered, balance, etherBalance, ensName, + votedInPreviousRounds, }) }, async [LOAD_BRIGHT_ID]({ commit, state }) { @@ -223,28 +281,20 @@ const actions = { serializedCart ) }, - [LOAD_CART]({ commit, state }) { - storage.watchItem( - state.currentUser.walletAddress, - state.currentUser.encryptionKey, - getCartStorageKey(state.currentRound.fundingRoundAddress), - (data: string | null) => { - const cart = deserializeCart(data) - commit(CLEAR_CART) - for (const item of cart) { - commit(ADD_CART_ITEM, item) - } - } - ) - }, - [UNWATCH_CART]({ state }) { - if (!state.currentUser || !state.currentRound) { + async [LOAD_CART]({ commit, state }) { + if (!state.currentUser.encryptionKey) { return } - storage.unwatchItem( + const data = storage.getItem( state.currentUser.walletAddress, + state.currentUser.encryptionKey, getCartStorageKey(state.currentRound.fundingRoundAddress) ) + const cart = deserializeCart(data) + commit(CLEAR_CART) + for (const item of cart) { + commit(ADD_CART_ITEM, item) + } }, [SAVE_COMMITTED_CART_DISPATCH]({ commit, state }) { commit(SAVE_COMMITTED_CART) @@ -256,17 +306,21 @@ const actions = { serializedCart ) }, - [LOAD_COMMITTED_CART]({ commit, state }) { - storage.watchItem( - state.currentUser.walletAddress, - state.currentUser.encryptionKey, - getCommittedCartStorageKey(state.currentRound.fundingRoundAddress), - (data: string | null) => { - const committedCart = deserializeCart(data) - Vue.set(state, 'committedCart', committedCart) - commit(RESTORE_COMMITTED_CART_TO_LOCAL_CART) - } + async [LOAD_COMMITTED_CART]({ commit, state }) { + const { encryptionKey, walletAddress } = state.currentUser + if (!encryptionKey) { + return + } + + const committedCart = await getCommittedCart( + state.currentRound, + encryptionKey, + walletAddress ) + Vue.set(state, 'committedCart', committedCart) + if (committedCart.length > 0) { + commit(RESTORE_COMMITTED_CART_TO_LOCAL_CART) + } }, [SAVE_CONTRIBUTOR_DATA]({ state }) { const serializedData = serializeContributorData(state.contributor) @@ -277,39 +331,46 @@ const actions = { serializedData ) }, - [LOAD_CONTRIBUTOR_DATA]({ commit, state }) { - storage.watchItem( - state.currentUser.walletAddress, - state.currentUser.encryptionKey, - getContributorStorageKey(state.currentRound.fundingRoundAddress), - (data: string | null) => { - const contributor = deserializeContributorData(data) - if (contributor) { - commit(SET_CONTRIBUTOR, contributor) - } - } - ) - }, - [UNWATCH_CONTRIBUTOR_DATA]({ state }) { - if (!state.currentUser || !state.currentRound) { + async [LOAD_CONTRIBUTOR_DATA]({ commit, state }) { + const { encryptionKey } = state.currentUser + const { fundingRoundAddress } = state.currentRound + if (!encryptionKey) { return } - storage.unwatchItem( - state.currentUser.walletAddress, - getContributorStorageKey(state.currentRound.fundingRoundAddress) + + const contributorKeypair = Keypair.createFromSeed(encryptionKey) + + const stateIndex = await getContributorIndex( + fundingRoundAddress, + contributorKeypair.pubKey ) + + if (!stateIndex) { + // if no contributor index, user has not contributed + return + } + + const contributor: Contributor = { + keypair: contributorKeypair, + stateIndex, + } + commit(SET_CONTRIBUTOR, contributor) }, - async [LOGIN_USER](_, { walletAddress, encryptionKey }) { - await loginUser(walletAddress, encryptionKey) - }, - [LOGOUT_USER]({ commit, dispatch }) { - dispatch(UNWATCH_CART) - dispatch(UNWATCH_CONTRIBUTOR_DATA) - logoutUser() + [LOGOUT_USER]({ commit }) { commit(SET_CURRENT_USER, null) commit(SET_CONTRIBUTION, null) commit(SET_CONTRIBUTOR, null) commit(CLEAR_CART) + commit(SET_CART_LOADED, false) + commit(TOGGLE_SHOW_CART_PANEL, false) + }, + async [LOAD_CART_DATA]({ dispatch, commit, state }) { + if (state.currentUser.encryptionKey) { + await dispatch(LOAD_CART) + await dispatch(LOAD_COMMITTED_CART) + await dispatch(LOAD_CONTRIBUTOR_DATA) + } + commit(SET_CART_LOADED, true) }, } diff --git a/vue-app/src/store/getters.ts b/vue-app/src/store/getters.ts index bb0905477..ddcee2773 100644 --- a/vue-app/src/store/getters.ts +++ b/vue-app/src/store/getters.ts @@ -40,6 +40,7 @@ export interface RootState { maciFactory: MACIFactory | null showSimpleLeaderboard: boolean rounds: Rounds | null + cartLoaded: boolean } const getters = { diff --git a/vue-app/src/store/index.ts b/vue-app/src/store/index.ts index 3ee97360b..5b011c741 100644 --- a/vue-app/src/store/index.ts +++ b/vue-app/src/store/index.ts @@ -36,6 +36,7 @@ const state: RootState = { maciFactory: null, showSimpleLeaderboard: true, rounds: null, + cartLoaded: false, } const store: StoreOptions = { diff --git a/vue-app/src/store/mutation-types.ts b/vue-app/src/store/mutation-types.ts index dab64459f..51cefd77d 100644 --- a/vue-app/src/store/mutation-types.ts +++ b/vue-app/src/store/mutation-types.ts @@ -23,3 +23,4 @@ export const TOGGLE_EDIT_SELECTION = 'TOGGLE_EDIT_SELECTION' export const SET_HAS_VOTED = 'SET_HAS_VOTED' export const TOGGLE_THEME = 'TOGGLE_THEME' export const TOGGLE_LEADERBOARD_VIEW = 'TOGGLE_LEADERBOARD_VIEW' +export const SET_CART_LOADED = 'SET_CART_LOADED' diff --git a/vue-app/src/store/mutations.ts b/vue-app/src/store/mutations.ts index eacbad9ec..af939a7cf 100644 --- a/vue-app/src/store/mutations.ts +++ b/vue-app/src/store/mutations.ts @@ -41,6 +41,7 @@ import { TOGGLE_LEADERBOARD_VIEW, SET_FACTORY, SET_MACI_FACTORY, + SET_CART_LOADED, } from './mutation-types' import { ThemeMode } from '@/api/core' @@ -190,6 +191,9 @@ const mutations = { // Spread to avoid reference state.committedCart = [...state.cart.filter((item) => item.amount != 0)] }, + [SET_CART_LOADED](state, isLoaded: boolean) { + state.cartLoaded = isLoaded + }, } export default mutations diff --git a/vue-app/src/utils/accounts.ts b/vue-app/src/utils/accounts.ts index fb21c5e70..ee141f431 100644 --- a/vue-app/src/utils/accounts.ts +++ b/vue-app/src/utils/accounts.ts @@ -1,6 +1,20 @@ import { ethers } from 'ethers' import { mainnetProvider } from '@/api/core' import { isAddress } from '@ethersproject/address' +import { Credential } from '@/api/passkey' +import { findKeyPair, publicKeyExists } from '@/api/keypair' +import { Keypair } from '@clrfund/maci-utils' +import { sha256, decrypt } from './crypto' +import { storage } from '@/api/storage' +import { getCartStorageKey, hasContributorVoted } from '@/api/contributions' + +export class WrongKeyError extends Error { + constructor(message?: string) { + super(message) + // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-388605613 + Object.setPrototypeOf(this, WrongKeyError.prototype) + } +} export function isSameAddress(address1: string, address2: string): boolean { // check for empty address to avoid getAddress() from throwing @@ -43,3 +57,111 @@ export function renderAddressOrHash( } return address } + +async function findEncryptionKey( + keys: string[], + findFn: (key: string) => Promise +): Promise { + for (const currentKey of keys) { + const hashedKey = sha256(currentKey) + const found = await findFn(hashedKey) + if (found) { + return hashedKey + } + } + + throw new WrongKeyError() +} + +/** + * Return the encryption key if found, otherwise create a new one + * @param address + * @param fundingRoundAddress + * @returns encryption key + */ +export async function createOrGetEncryptionKey( + address: string, + fundingRoundAddress: string +): Promise { + const credential = new Credential(address) + + const key = await getEncryptionKey(address, fundingRoundAddress) + + if (key) { + return key + } else { + const key = await credential.create() + const hashed = sha256(key) + return hashed + } +} + +/** + * Check MACI encrypted messages and the encrypted uncommited cart to see + * which public key recovered from the passkey signature was used for the + * encryption and return the sha256 hash of the key as the encryption key + * + * @param address user wallet address + * @returns encryption key + */ +export async function getEncryptionKey( + address: string, + fundingRoundAddress: string +): Promise { + if (!fundingRoundAddress) { + return '' + } + const hasVoted = await hasContributorVoted(fundingRoundAddress, address) + const uncommitedCart = storage.getItemRaw( + address, + getCartStorageKey(fundingRoundAddress) + ) + + if (!hasVoted && !uncommitedCart) { + return '' + } + + const credential = new Credential(address) + const keys = await credential.get() + + /* first look for the key used to encrypt MACI messages */ + if (hasVoted) { + return findEncryptionKey(keys, (key) => { + const keypair = Keypair.createFromSeed(key) + return findKeyPair({ + fundingRoundAddress, + keypair, + contributorAddress: address, + }) + }) + } + + /* now check if the key was used to encrypt uncommitted cart */ + if (uncommitedCart) { + return findEncryptionKey(keys, (key) => { + try { + return Promise.resolve(Boolean(decrypt(uncommitedCart, key))) + } catch (err) { + // error decrypting message, wrong key + return Promise.resolve(false) + } + }) + } + + return '' +} + +/** + * Return the first key from the credential as the encryption key + * @param address wallet address + * @returns encryption key + */ +export async function getFirstEncryptionKey(address: string): Promise { + const credential = new Credential(address) + const keys = await credential.get() + + return findEncryptionKey(keys, (key) => { + const keypair = Keypair.createFromSeed(key) + return publicKeyExists(keypair.pubKey) + }) +} diff --git a/vue-app/src/utils/amounts.ts b/vue-app/src/utils/amounts.ts index 043979b5e..f727d0c4f 100644 --- a/vue-app/src/utils/amounts.ts +++ b/vue-app/src/utils/amounts.ts @@ -21,7 +21,6 @@ export function formatAmount( // If `maximumSignificantDigits` passed, return compact human-readable form to specified digits if (maximumSignificantDigits) { return new Intl.NumberFormat('en', { - /* @ts-ignore */ // TODO: Remove `@ts-ignore` when codebase upgrades to typescript ^4.1.0 notation: 'compact', maximumSignificantDigits, }).format(result) diff --git a/vue-app/src/utils/crypto.ts b/vue-app/src/utils/crypto.ts index ee6b240d6..a6573f679 100644 --- a/vue-app/src/utils/crypto.ts +++ b/vue-app/src/utils/crypto.ts @@ -1,14 +1,5 @@ -import { AES, MD5, SHA256, enc } from 'crypto-js' - -export function md5(data: string): string { - const hash = MD5(data) - return hash.toString(enc.Hex) -} - -export function sha256(data: string): string { - const hash = SHA256(data) - return hash.toString(enc.Hex) -} +import { AES, enc } from 'crypto-js' +import { sha256 } from 'ethers/lib/utils' export function encrypt(message: string, key: string): string { const encrypted = AES.encrypt(message, key) @@ -19,3 +10,5 @@ export function decrypt(encrypted: string, key: string): string { const decrypted = AES.decrypt(encrypted, key) return decrypted.toString(enc.Utf8) } + +export { sha256 } diff --git a/vue-app/src/utils/maci.ts b/vue-app/src/utils/maci.ts deleted file mode 100644 index d99ed7883..000000000 --- a/vue-app/src/utils/maci.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { BigNumber } from 'ethers' -import { genRandomSalt, IncrementalQuinTree, hash5 } from 'maci-crypto' -import { Keypair, PubKey, Command, Message } from 'maci-domainobjs' - -const LEAVES_PER_NODE = 5 - -function bnSqrt(a: BigNumber): BigNumber { - // Take square root from a big number - // https://stackoverflow.com/a/52468569/1868395 - if (a.isZero()) { - return a - } - let x - let x1 = a.div(2) - do { - x = x1 - x1 = x.add(a.div(x)).div(2) - } while (!x.eq(x1)) - return x -} - -export function createMessage( - userStateIndex: number, - userKeypair: Keypair, - newUserKeypair: Keypair | null, - coordinatorPubKey: PubKey, - voteOptionIndex: number | null, - voiceCredits: BigNumber | null, - nonce: number, - salt?: BigInt -): [Message, PubKey] { - const encKeypair = new Keypair() - if (!salt) { - salt = genRandomSalt() - } - const quadraticVoteWeight = voiceCredits ? bnSqrt(voiceCredits) : 0 - const command = new Command( - BigInt(userStateIndex), - newUserKeypair ? newUserKeypair.pubKey : userKeypair.pubKey, - BigInt(voteOptionIndex || 0), - BigInt(quadraticVoteWeight), - BigInt(nonce), - BigInt(salt) - ) - const signature = command.sign(userKeypair.privKey) - const message = command.encrypt( - signature, - Keypair.genEcdhSharedKey(encKeypair.privKey, coordinatorPubKey) - ) - return [message, encKeypair.pubKey] -} - -export interface Tally { - provider: string - maci: string - results: { - commitment: string - tally: string[] - salt: string - } - totalVoiceCredits: { - spent: string - commitment: string - salt: string - } - totalVoiceCreditsPerVoteOption: { - commitment: string - tally: string[] - salt: string - } -} - -export function getRecipientClaimData( - recipientIndex: number, - recipientTreeDepth: number, - tally: Tally -): any[] { - // Create proof for total amount of spent voice credits - const spent = tally.totalVoiceCreditsPerVoteOption.tally[recipientIndex] - const spentSalt = tally.totalVoiceCreditsPerVoteOption.salt - const spentTree = new IncrementalQuinTree( - recipientTreeDepth, - BigInt(0), - LEAVES_PER_NODE, - hash5 - ) - for (const leaf of tally.totalVoiceCreditsPerVoteOption.tally) { - spentTree.insert(BigInt(leaf)) - } - const spentProof = spentTree.genMerklePath(recipientIndex) - - return [ - recipientIndex, - spent, - spentProof.pathElements.map((x) => x.map((y) => y.toString())), - spentSalt, - ] -} diff --git a/vue-app/src/utils/transaction.ts b/vue-app/src/utils/transaction.ts new file mode 100644 index 000000000..3212c85c5 --- /dev/null +++ b/vue-app/src/utils/transaction.ts @@ -0,0 +1,44 @@ +export class Transaction { + blockNumber: number + transactionIndex: number + + constructor({ + blockNumber, + transactionIndex, + }: { + blockNumber: number + transactionIndex: number + }) { + this.blockNumber = blockNumber + this.transactionIndex = transactionIndex + } + + /** + * compare the age of the transaction + * @param tx + * @returns 0 - same age + * 1 - newer transaction + * -1 - older transaction + */ + compare(tx: Transaction): number { + if ( + this.blockNumber === tx.blockNumber && + this.transactionIndex === tx.transactionIndex + ) { + return 0 + } + + if (this.blockNumber < tx.blockNumber) { + return -1 + } + + if ( + this.blockNumber === tx.blockNumber && + this.transactionIndex < tx.transactionIndex + ) { + return -1 + } + + return 1 + } +} diff --git a/vue-app/src/views/Profile.vue b/vue-app/src/views/Profile.vue index 1fa2ef60d..ae99fb1da 100644 --- a/vue-app/src/views/Profile.vue +++ b/vue-app/src/views/Profile.vue @@ -88,7 +88,7 @@ > project thumbnail
diff --git a/vue-app/src/views/RecipientRegistry.vue b/vue-app/src/views/RecipientRegistry.vue index 0386ac2a9..4a1a402c4 100644 --- a/vue-app/src/views/RecipientRegistry.vue +++ b/vue-app/src/views/RecipientRegistry.vue @@ -287,7 +287,7 @@ export default class RecipientRegistryView extends Vue { await new Promise((resolve) => { setTimeout(async () => { await this.loadRequests() - resolve() + resolve(0) }, 2000) }) }, diff --git a/vue-app/src/views/TransactionSuccess.vue b/vue-app/src/views/TransactionSuccess.vue index d7059c3c3..20b680d30 100644 --- a/vue-app/src/views/TransactionSuccess.vue +++ b/vue-app/src/views/TransactionSuccess.vue @@ -6,14 +6,15 @@
-
+
🎉

{{ formatContribution() }} - {{ currentRound.nativeTokenSymbol }} {{ $t('transactionSuccess.p1') }} + {{ $store.getters.nativeTokenSymbol }} + {{ $t('transactionSuccess.p1') }}

{ + describe('for valid signatures', () => { + it('should return a valid public key', async () => { + const response = { + authenticatorData: Buffer.from( + '49960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97630500000000', + 'hex' + ), + clientDataJSON: Buffer.from( + '7b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a2230346844397570706f6c6b584249752d4a714c6a69616f6856436d6d664445496a54396f42617476724a34222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a38303830222c2263726f73734f726967696e223a66616c73657d', + 'hex' + ), + signature: Buffer.from( + '3044022069881e6e6a8bafe837bbc8da514a3b037ffc733a1de80fbfbacd08f22b5e2b230220386187cd49149b1db7fb5d710e171d0ada630c29b70e5e5d5308d82c01404af0', + 'hex' + ), + } + const pubKeys = await recoverPubKeyFromCredential({ response }) + expect(pubKeys).to.include(testPublicKey1) + }) + }) + describe('for signatures that needs to trim leading zero', () => { + it('should return a valid public key', async () => { + const response = { + authenticatorData: Buffer.from( + '49960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97630500000000', + 'hex' + ), + clientDataJSON: Buffer.from( + '7b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a224a747673556d6e456f714e414e447350586d4854796a4e6c4642477347466b67317855414350786935416b222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a38303830222c2263726f73734f726967696e223a66616c73657d', + 'hex' + ), + signature: Buffer.from( + '3046022100bd98d33286a0085d5aa39e81904c3ad7d61dd4db3b91cc7809ea8747799dd208022100d93cd0d56ab5723f44f30acffecc4506732d9cc5fce78f03752e2baf6c2e51b7', + 'hex' + ), + } + const pubKeys = await recoverPubKeyFromCredential({ response }) + expect(pubKeys).to.include(testPublicKey2) + }) + }) +}) diff --git a/yarn.lock b/yarn.lock index 547928af2..67f943c1e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,56 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@ardatan/fetch-event-source@2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@ardatan/fetch-event-source/-/fetch-event-source-2.0.2.tgz#734aa3eaa0da456453d24d8dc7c14d5e366a8d21" integrity sha512-mcpz/wJ7s50PJIVz4OQ1Yim3w/AAchtYtIg0QMWiMR2cZZoI9t23hRyqeumtD5EmyJu0fxtjmQ5WY8GI86V4rQ== +"@ardatan/relay-compiler@12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" + integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/runtime" "^7.0.0" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.4.0" + chalk "^4.0.0" + fb-watchman "^2.0.0" + fbjs "^3.0.0" + glob "^7.1.1" + immutable "~3.7.6" + invariant "^2.2.4" + nullthrows "^1.1.1" + relay-runtime "12.0.0" + signedsource "^1.0.0" + yargs "^15.3.1" + +"@ardatan/sync-fetch@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" + integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== + dependencies: + node-fetch "^2.6.1" + +"@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" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + "@babel/code-frame@^7.0.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" @@ -21,6 +66,13 @@ dependencies: "@babel/highlight" "^7.14.5" +"@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" @@ -31,6 +83,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== +"@babel/compat-data@^7.20.5": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" + integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== + "@babel/core@^7.0.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" @@ -73,6 +130,36 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.14.0": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.12" + "@babel/types" "^7.20.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== + dependencies: + "@babel/types" "^7.20.7" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + "@babel/generator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" @@ -126,6 +213,17 @@ browserslist "^4.16.6" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.14.5": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" @@ -160,6 +258,11 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + "@babel/helper-explode-assignable-expression@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" @@ -176,6 +279,14 @@ "@babel/template" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + "@babel/helper-get-function-arity@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" @@ -190,6 +301,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-member-expression-to-functions@^7.14.5": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" @@ -211,6 +329,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-module-transforms@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" @@ -239,6 +364,20 @@ "@babel/traverse" "^7.15.0" "@babel/types" "^7.15.0" +"@babel/helper-module-transforms@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" + "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" @@ -251,6 +390,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== +"@babel/helper-plugin-utils@^7.19.0": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== + "@babel/helper-remap-async-to-generator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" @@ -294,6 +438,13 @@ dependencies: "@babel/types" "^7.14.8" +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" @@ -308,6 +459,18 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + "@babel/helper-validator-identifier@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" @@ -318,6 +481,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + "@babel/helper-validator-identifier@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" @@ -328,6 +496,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + "@babel/helper-wrap-function@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" @@ -356,6 +529,24 @@ "@babel/traverse" "^7.15.0" "@babel/types" "^7.15.0" +"@babel/helpers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" + integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" @@ -379,6 +570,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== +"@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== + "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" @@ -563,6 +759,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-import-assertions@7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -1075,6 +1278,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.9.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" + integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" @@ -1084,6 +1294,15 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/template@^7.18.10", "@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@babel/traverse@7.15.0", "@babel/traverse@^7.0.0", "@babel/traverse@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" @@ -1114,6 +1333,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.7": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5" + integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@7.15.0", "@babel/types@^7.0.0", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" @@ -1130,6 +1365,15 @@ "@babel/helper-validator-identifier" "^7.14.5" to-fast-properties "^2.0.0" +"@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@endemolshinegroup/cosmiconfig-typescript-loader@3.0.2": version "3.0.2" resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d" @@ -1156,6 +1400,36 @@ resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + "@ethereum-waffle/chai@^3.4.4": version "3.4.4" resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-3.4.4.tgz#16c4cc877df31b035d6d92486dfdf983df9138ff" @@ -1263,6 +1537,21 @@ "@ethersproject/properties" "^5.0.7" "@ethersproject/strings" "^5.0.8" +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + "@ethersproject/abi@5.0.9", "@ethersproject/abi@^5.0.5": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.9.tgz#738c1c557e56d8f395a5a27caef9b0449bc85a10" @@ -2438,38 +2727,54 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@graphprotocol/graph-cli@0.21.0": - version "0.21.0" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.21.0.tgz#628064ebfef4f41594f50c9811514ed8b24ea69d" - integrity sha512-qQNlPCe+HKXscymrVI366gKeSzPAY5N/yXDkGSPzNDiBzi2VfV1CUyVgTibeLtcp3XZE4pxtcyCmdHWqnK3xGw== +"@float-capital/float-subgraph-uncrashable@^0.0.0-alpha.4": + version "0.0.0-internal-testing.4" + resolved "https://registry.yarnpkg.com/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.4.tgz#7886b6fc1c75ea5b36d4c953e7150875954b94cf" + integrity sha512-jjGnze6R8ro5Stf1mQwOPVCCmOf6smEZeDD7q2QEP14Mg8O5zTfvE/3U2bHAiV1y8G+affZsBu9sG1yarD/WRw== dependencies: - assemblyscript "git+https://github.com/AssemblyScript/assemblyscript.git#v0.6" - chalk "^3.0.0" - chokidar "^3.0.2" - debug "^4.1.1" - docker-compose "^0.23.2" - dockerode "^2.5.8" - fs-extra "^9.0.0" - glob "^7.1.2" - gluegun "^4.3.1" - graphql "^15.5.0" - immutable "^3.8.2" - ipfs-http-client "^34.0.0" - jayson "^3.0.2" - js-yaml "^3.13.1" - node-fetch "^2.3.0" - pkginfo "^0.4.1" - prettier "^1.13.5" - request "^2.88.0" - tmp-promise "^3.0.2" - yaml "^1.5.1" + "@rescript/std" "9.0.0" + graphql "^16.6.0" + graphql-import-node "^0.0.5" + js-yaml "^4.1.0" -"@graphprotocol/graph-ts@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.20.0.tgz#ed31ffd59a6aa9703a1ec5079f137a81220443cb" - integrity sha512-+R0Tu/MD4Fiq0Fo+v1l+xznz+ZrciQKWlzMtXjDrhM70vlMNVL9wDmf90MVFYpslgqIfw024hT6XwlmyNyOWbQ== +"@graphprotocol/graph-cli@0.37.5": + version "0.37.5" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.37.5.tgz#afbda3c5b66a425e4518c6746a1dc139077363a1" + integrity sha512-ckwk5ogRrepW+4sgad8gYudk9bKY1pZb2UjkU5ciRDM1Fs48YNcgdv8IJZV+BDSza4dpAo77YXz2Sp75MRtigw== dependencies: - assemblyscript "https://github.com/AssemblyScript/assemblyscript#36040d5b5312f19a025782b5e36663823494c2f3" + "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" + assemblyscript "0.19.23" + binary-install-raw "0.0.13" + chalk "3.0.0" + chokidar "3.5.1" + debug "4.3.1" + docker-compose "0.23.4" + dockerode "2.5.8" + fs-extra "9.0.0" + glob "7.1.6" + gluegun "https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep" + graphql "15.5.0" + immutable "4.2.1" + ipfs-http-client "34.0.0" + jayson "3.6.6" + js-yaml "3.13.1" + node-fetch "2.6.0" + pkginfo "0.4.1" + prettier "1.19.1" + request "2.88.2" + semver "7.3.5" + sync-request "6.1.0" + tmp-promise "3.0.2" + web3-eth-abi "1.7.0" + which "2.0.2" + yaml "1.9.2" + +"@graphprotocol/graph-ts@0.29.1": + version "0.29.1" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.29.1.tgz#8f8fb6815fc4a7470bb8aff8004f032a2639300b" + integrity sha512-GhAP2ijk3cTM0xBjoAFxEmdZbYl1BueCYqAGw5G7UyBX3EV8FWkvD5DMam6IkLGqXasBmelCFrROK3B5t6zVdg== + dependencies: + assemblyscript "0.19.10" "@graphql-codegen/cli@2.1.1": version "2.1.1" @@ -2517,6 +2822,46 @@ yaml "^1.10.0" yargs "^17.0.0" +"@graphql-codegen/cli@2.16.4": + version "2.16.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-2.16.4.tgz#c8e6df2dc8cccfd61a088de0ada9a05842ad8ad6" + integrity sha512-MBbdzIIaNZ8BTlFXG00toxU5rIV7Ltf2myaze88HpI5YPVfVJKlfccE6l0/Gv+nLv88CIM/PZrnFLdVtlBmrZw== + dependencies: + "@babel/generator" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/types" "^7.18.13" + "@graphql-codegen/core" "2.6.8" + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-tools/apollo-engine-loader" "^7.3.6" + "@graphql-tools/code-file-loader" "^7.3.13" + "@graphql-tools/git-loader" "^7.2.13" + "@graphql-tools/github-loader" "^7.3.20" + "@graphql-tools/graphql-file-loader" "^7.5.0" + "@graphql-tools/json-file-loader" "^7.4.1" + "@graphql-tools/load" "7.8.0" + "@graphql-tools/prisma-loader" "^7.2.49" + "@graphql-tools/url-loader" "^7.13.2" + "@graphql-tools/utils" "^9.0.0" + "@whatwg-node/fetch" "^0.6.0" + chalk "^4.1.0" + chokidar "^3.5.2" + cosmiconfig "^7.0.0" + cosmiconfig-typescript-loader "4.3.0" + debounce "^1.2.0" + detect-indent "^6.0.0" + graphql-config "4.4.0" + inquirer "^8.0.0" + is-glob "^4.0.1" + json-to-pretty-yaml "^1.2.2" + listr2 "^4.0.5" + log-symbols "^4.0.0" + shell-quote "^1.7.3" + string-env-interpolation "^1.0.1" + ts-log "^2.2.3" + tslib "^2.4.0" + yaml "^1.10.0" + yargs "^17.0.0" + "@graphql-codegen/core@2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-2.1.0.tgz#c0b2d63ad3e77b794b6a84485c4a8ac72c291c6b" @@ -2527,6 +2872,16 @@ "@graphql-tools/utils" "^8.1.1" tslib "~2.3.0" +"@graphql-codegen/core@2.6.8": + version "2.6.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-2.6.8.tgz#00c4011e3619ddbc6af5e41b2f254d6f6759556e" + integrity sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.1" + "@graphql-tools/schema" "^9.0.0" + "@graphql-tools/utils" "^9.1.1" + tslib "~2.4.0" + "@graphql-codegen/plugin-helpers@^2.1.0", "@graphql-codegen/plugin-helpers@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.1.1.tgz#fc13e735763574ef308045bbb95c3e7201ec0027" @@ -2539,6 +2894,49 @@ lodash "~4.17.0" tslib "~2.3.0" +"@graphql-codegen/plugin-helpers@^2.7.2": + version "2.7.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz#6544f739d725441c826a8af6a49519f588ff9bed" + integrity sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg== + dependencies: + "@graphql-tools/utils" "^8.8.0" + change-case-all "1.0.14" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.4.0" + +"@graphql-codegen/plugin-helpers@^3.1.1", "@graphql-codegen/plugin-helpers@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz#69a2e91178f478ea6849846ade0a59a844d34389" + integrity sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg== + dependencies: + "@graphql-tools/utils" "^9.0.0" + change-case-all "1.0.15" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.4.0" + +"@graphql-codegen/schema-ast@^2.6.1": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-2.6.1.tgz#8ba1b38827c034b51ecd3ce88622c2ae6cd3fe1a" + integrity sha512-5TNW3b1IHJjCh07D2yQNGDQzUpUl2AD+GVe1Dzjqyx/d2Fn0TPMxLsHsKPS4Plg4saO8FK/QO70wLsP7fdbQ1w== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-tools/utils" "^9.0.0" + tslib "~2.4.0" + +"@graphql-codegen/typescript-graphql-request@4.5.8": + version "4.5.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-4.5.8.tgz#55a609de168f4bf7b66f353b7ba4b1a21113c921" + integrity sha512-XsuAA35Ou03LsklNgnIWXZ5HOHsJ5w1dBuDKtvqM9rD0cAI8x0f4TY0n6O1EraSBSvyHLP3npb1lOTPZzG2TjA== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-codegen/visitor-plugin-common" "2.13.1" + auto-bind "~4.0.0" + tslib "~2.4.0" + "@graphql-codegen/typescript-graphql-request@^4.1.2": version "4.1.2" resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-4.1.2.tgz#0c7558ab780b457f1cd1464672a50c1747595b9c" @@ -2549,6 +2947,17 @@ auto-bind "~4.0.0" tslib "~2.3.0" +"@graphql-codegen/typescript-operations@2.5.12": + version "2.5.12" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.12.tgz#36af48b34d70d98a9a2adea1ab79e26fcab23a92" + integrity sha512-/w8IgRIQwmebixf514FOQp2jXOe7vxZbMiSFoQqJgEgzrr42joPsgu4YGU+owv2QPPmu4736OcX8FSavb7SLiA== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-codegen/typescript" "^2.8.7" + "@graphql-codegen/visitor-plugin-common" "2.13.7" + auto-bind "~4.0.0" + tslib "~2.4.0" + "@graphql-codegen/typescript-operations@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-2.1.2.tgz#fe93ec2e1fe6c036f6d60210d8259a24b2e9434d" @@ -2560,6 +2969,17 @@ auto-bind "~4.0.0" tslib "~2.3.0" +"@graphql-codegen/typescript@2.8.7", "@graphql-codegen/typescript@^2.8.7": + version "2.8.7" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-2.8.7.tgz#da34261b779a001d7d53b8f454bafc002b06e041" + integrity sha512-Nm5keWqIgg/VL7fivGmglF548tJRP2ttSmfTMuAdY5GNGTJTVZOzNbIOfnbVEDMMWF4V+quUuSyeUQ6zRxtX1w== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-codegen/schema-ast" "^2.6.1" + "@graphql-codegen/visitor-plugin-common" "2.13.7" + auto-bind "~4.0.0" + tslib "~2.4.0" + "@graphql-codegen/typescript@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-2.1.2.tgz#410d69b9d89cf5f6d712ed08687f45e750986ee8" @@ -2586,6 +3006,38 @@ parse-filepath "^1.0.2" tslib "~2.3.0" +"@graphql-codegen/visitor-plugin-common@2.13.1": + version "2.13.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz#2228660f6692bcdb96b1f6d91a0661624266b76b" + integrity sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^8.8.0" + auto-bind "~4.0.0" + change-case-all "1.0.14" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.4.0" + +"@graphql-codegen/visitor-plugin-common@2.13.7": + version "2.13.7" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.7.tgz#591e054a970a0d572bdfb765bf948dae21bf8aed" + integrity sha512-xE6iLDhr9sFM1qwCGJcCXRu5MyA0moapG2HVejwyAXXLubYKYwWnoiEigLH2b5iauh6xsl6XP8hh9D1T1dn5Cw== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^9.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.4.0" + "@graphql-tools/apollo-engine-loader@^7.0.5": version "7.0.5" resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.0.5.tgz#d6710b9d2a8aa5fc62966c34ccc0f92da91cd7d6" @@ -2596,6 +3048,26 @@ sync-fetch "0.3.0" tslib "~2.3.0" +"@graphql-tools/apollo-engine-loader@^7.3.6": + version "7.3.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.22.tgz#ace09442dd0aa758a7a42dac3b73252c7935c531" + integrity sha512-4zbL2k7Tcr+qDHBmqKTfrxgOgGkRw0x8NAmrNQVyDYhpP9NiRANmq4DTUgqSPEFiZ6Dx6FYGD4fldRq1JYSYqQ== + dependencies: + "@ardatan/sync-fetch" "0.0.1" + "@graphql-tools/utils" "9.1.4" + "@whatwg-node/fetch" "^0.6.0" + tslib "^2.4.0" + +"@graphql-tools/batch-execute@8.5.15": + version "8.5.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.15.tgz#f61ac71d11e57c9b9f8b8b60fc882e4e9762d182" + integrity sha512-qb12M8XCK6SBJmZDS8Lzd4PVJFsIwNUkYmFuqcTiBqOI/WsoDlQDZI++ghRpGcusLkL9uzcIOTT/61OeHhsaLg== + dependencies: + "@graphql-tools/utils" "9.1.4" + dataloader "2.1.0" + tslib "^2.4.0" + value-or-promise "1.0.12" + "@graphql-tools/batch-execute@^8.0.5": version "8.0.5" resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.0.5.tgz#a0f8a9ff2c61209974c626faf3dd922a5c68d2b0" @@ -2617,6 +3089,30 @@ tslib "~2.3.0" unixify "^1.0.0" +"@graphql-tools/code-file-loader@^7.3.13": + version "7.3.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.16.tgz#58aa85c250175cebe0ea4309214357768d550f93" + integrity sha512-109UFvQjZEntHwjPaHpWvgUudHenGngbXvSImabPc2fdrtgja5KC0h7thCg379Yw6IORHGrF2XbJwS1hAGPPWw== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.4.3" + "@graphql-tools/utils" "9.1.4" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/delegate@9.0.22": + version "9.0.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.22.tgz#12f27ef76c5add456fa8797a496bb7dc82071771" + integrity sha512-dWJGMN8V7KORtbI8eDAjHYTWiMyis/md27M6pPhrlYVlcsDk3U0jbNdgkswBBUEBvqumPRCv8pVOxKcLS4caKA== + dependencies: + "@graphql-tools/batch-execute" "8.5.15" + "@graphql-tools/executor" "0.0.12" + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" + dataloader "2.1.0" + tslib "~2.4.0" + value-or-promise "1.0.12" + "@graphql-tools/delegate@^8.1.0", "@graphql-tools/delegate@^8.1.1": version "8.1.1" resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-8.1.1.tgz#d20e6d81a2900b1c8a69c2c0a3a8a0df2f9030c2" @@ -2629,6 +3125,55 @@ tslib "~2.3.0" value-or-promise "1.0.10" +"@graphql-tools/executor-graphql-ws@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.6.tgz#34c1e5bc6ac1ff292fd6c4b5490b7906c6dd25c2" + integrity sha512-n6JvIviYO8iiasV/baclimQqNkYGP7JRlkNSnphNG5LULmVpQ2WsyvbgJHV7wtlTZ8ZQ3+dILgQF83PFyLsfdA== + dependencies: + "@graphql-tools/utils" "9.1.4" + "@repeaterjs/repeater" "3.0.4" + "@types/ws" "^8.0.0" + graphql-ws "5.11.2" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + ws "8.12.0" + +"@graphql-tools/executor-http@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.1.tgz#9c4a43811d36d1be2319fd241d5538e2fac45bce" + integrity sha512-bFE6StI7CJEIYGRkAnTYxutSV4OtC1c4MQU3nStOYZZO7KmzIgEQZ4ygPSPrRb+jtRsMCBEqPqlYOD4Rq02aMw== + dependencies: + "@graphql-tools/utils" "9.1.4" + "@repeaterjs/repeater" "3.0.4" + "@whatwg-node/fetch" "0.6.2" + dset "3.1.2" + extract-files "^11.0.0" + meros "1.2.1" + tslib "^2.4.0" + value-or-promise "1.0.12" + +"@graphql-tools/executor-legacy-ws@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.6.tgz#236dd5b3d4d19492978b1458b74928e8c69d16ff" + integrity sha512-L1hRuSvBUCNerYDhfeSZXFeqliDlnNXa3fDHTp7efI3Newpbevqa19Fm0mVzsCL7gqIKOwzrPORwh7kOVE/vew== + dependencies: + "@graphql-tools/utils" "9.1.4" + "@types/ws" "^8.0.0" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + ws "8.12.0" + +"@graphql-tools/executor@0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.12.tgz#d885c7fa98a8aaeaa771163b71fb98ce9f52f9bd" + integrity sha512-bWpZcYRo81jDoTVONTnxS9dDHhEkNVjxzvFCH4CRpuyzD3uL+5w3MhtxIh24QyWm4LvQ4f+Bz3eMV2xU2I5+FA== + dependencies: + "@graphql-tools/utils" "9.1.4" + "@graphql-typed-document-node/core" "3.1.1" + "@repeaterjs/repeater" "3.0.4" + tslib "^2.4.0" + value-or-promise "1.0.12" + "@graphql-tools/git-loader@^7.0.5": version "7.0.6" resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.0.6.tgz#f66221efbc8b93b2c2889fdf485615aaa0a45f66" @@ -2641,6 +3186,18 @@ tslib "~2.3.0" unixify "^1.0.0" +"@graphql-tools/git-loader@^7.2.13": + version "7.2.16" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.2.16.tgz#8c025cad12a623ac91e421eb01380cc177070e7c" + integrity sha512-8DsxYfSouhgKPOBcc7MzuOTM4M/j2UNFn2ehXD0MX9q41t3dKffufJZKsKxE6VyyCUoVYdlRFhUWEyOHPVdcfQ== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.4.3" + "@graphql-tools/utils" "9.1.4" + is-glob "4.0.3" + micromatch "^4.0.4" + tslib "^2.4.0" + unixify "^1.0.0" + "@graphql-tools/github-loader@^7.0.5": version "7.0.5" resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.0.5.tgz#f08f1c5f4b01e922e7fc24cafb0142a66781bf2f" @@ -2651,6 +3208,17 @@ cross-fetch "3.1.4" tslib "~2.3.0" +"@graphql-tools/github-loader@^7.3.20": + version "7.3.23" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.23.tgz#9688f4b9cd9596229f0f8c7eed7a8f500806defa" + integrity sha512-oYTZCvW520KNVVonjucDSMhabCFnHwtM1rJbyUkA1JFyzpmmNAAyNMWOOPcU/Q9rTESrsH+Hbja0mfpjpnBKLA== + dependencies: + "@ardatan/sync-fetch" "0.0.1" + "@graphql-tools/graphql-tag-pluck" "7.4.3" + "@graphql-tools/utils" "9.1.4" + "@whatwg-node/fetch" "^0.6.0" + tslib "^2.4.0" + "@graphql-tools/graphql-file-loader@^7.0.1", "@graphql-tools/graphql-file-loader@^7.0.5": version "7.0.6" resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.0.6.tgz#602a2013dc926e17542c979b8f9af45187329bcb" @@ -2662,6 +3230,29 @@ tslib "~2.3.0" unixify "^1.0.0" +"@graphql-tools/graphql-file-loader@^7.3.7", "@graphql-tools/graphql-file-loader@^7.5.0": + version "7.5.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.14.tgz#6c6527e353cf9adcbda2cdc8a85face03ad8fe04" + integrity sha512-JGer4g57kq4wtsvqv8uZsT4ZG1lLsz1x5yHDfSj2OxyiWw2f1jFkzgby7Ut3H2sseJiQzeeDYZcbm06qgR32pg== + dependencies: + "@graphql-tools/import" "6.7.15" + "@graphql-tools/utils" "9.1.4" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/graphql-tag-pluck@7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.3.tgz#b07f2263c383d9605d941c836dc01a7bbc6e56a7" + integrity sha512-w+nrJVQw+NTuaZNQG5AwSh4Qe+urP/s4rUz5s1T007rDnv1kvkiX+XHOCnIfJzXOTuvFmG4GGYw/x0CuSRaGZQ== + dependencies: + "@babel/parser" "^7.16.8" + "@babel/plugin-syntax-import-assertions" "7.20.0" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + "@graphql-tools/utils" "9.1.4" + tslib "^2.4.0" + "@graphql-tools/graphql-tag-pluck@^7.0.5": version "7.0.5" resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.0.5.tgz#b21137c0fc364da283fdf7c7de8973cf183d3dc0" @@ -2673,6 +3264,15 @@ "@graphql-tools/utils" "^8.1.1" tslib "~2.3.0" +"@graphql-tools/import@6.7.15": + version "6.7.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.15.tgz#7553e48140797255588b26d423a89aa042196928" + integrity sha512-WNhvauAt2I2iUg+JdQK5oQebKLXqUZWe8naP13K1jOkbTQT7hK3P/4I9AaVmzt0KXRJW5Uow3RgdHZ7eUBKVsA== + dependencies: + "@graphql-tools/utils" "9.1.4" + resolve-from "5.0.0" + tslib "^2.4.0" + "@graphql-tools/import@^6.2.6": version "6.3.1" resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.3.1.tgz#731c47ab6c6ac9f7994d75c76b6c2fa127d2d483" @@ -2691,6 +3291,26 @@ tslib "~2.3.0" unixify "^1.0.0" +"@graphql-tools/json-file-loader@^7.3.7", "@graphql-tools/json-file-loader@^7.4.1": + version "7.4.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.15.tgz#ed229d98784350623d2ef32628690db405fa6780" + integrity sha512-pH+hbsDetcEpj+Tmi7ZRUkxzJez2DLdSQuvK5Qi38FX/Nz/5nZKRfW9nqIptGYbuS9+2JPrt9WWNn1aGtegIFQ== + dependencies: + "@graphql-tools/utils" "9.1.4" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/load@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.0.tgz#bd4d2e2a5117de9a60f9691a218217e96afc2ea7" + integrity sha512-l4FGgqMW0VOqo+NMYizwV8Zh+KtvVqOf93uaLo9wJ3sS3y/egPCgxPMDJJ/ufQZG3oZ/0oWeKt68qop3jY0yZg== + dependencies: + "@graphql-tools/schema" "9.0.4" + "@graphql-tools/utils" "8.12.0" + p-limit "3.1.0" + tslib "^2.4.0" + "@graphql-tools/load@^7.1.0", "@graphql-tools/load@^7.1.8": version "7.1.9" resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.1.9.tgz#6bcff0a2866051ecdf514e6a8f82c2b4c0f5401d" @@ -2701,6 +3321,32 @@ p-limit "3.1.0" tslib "~2.3.0" +"@graphql-tools/load@^7.5.5": + version "7.8.9" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.9.tgz#5f4e523095b6154bac43e6a01acb6b043e9afaca" + integrity sha512-/eHRv6OCTI/Ir5XcbtSx0XbW3zOQVscp2MZQFGZKDzqCcGD+NVy4mLCoBwR/OsOUpvWAwMnc+Llb4SDKAYGmjQ== + dependencies: + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" + p-limit "3.1.0" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.15", "@graphql-tools/merge@^8.2.6": + version "8.3.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.15.tgz#9b24ee5e9c36074684515c7d1587cd3e200c8a8f" + integrity sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA== + dependencies: + "@graphql-tools/utils" "9.1.4" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.6.tgz#97a936d4c8e8f935e58a514bb516c476437b5b2c" + integrity sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ== + dependencies: + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" + "@graphql-tools/merge@^6.2.16": version "6.2.17" resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.17.tgz#4dedf87d8435a5e1091d7cc8d4f371ed1e029f1f" @@ -2725,6 +3371,13 @@ dependencies: tslib "~2.0.1" +"@graphql-tools/optimize@^1.3.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-1.3.1.tgz#29407991478dbbedc3e7deb8c44f46acb4e9278b" + integrity sha512-5j5CZSRGWVobt4bgRRg7zhjPiSimk+/zIuColih8E8DxuFOaJ+t0qu7eZS5KXWBkjcd4BPNuhUPpNlEmHPqVRQ== + dependencies: + tslib "^2.4.0" + "@graphql-tools/prisma-loader@^7.0.6": version "7.0.6" resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.0.6.tgz#4b791eacd26d8fbf3783fba48c0239ec6cc5c621" @@ -2751,6 +3404,31 @@ tslib "~2.3.0" yaml-ast-parser "^0.0.43" +"@graphql-tools/prisma-loader@^7.2.49": + version "7.2.53" + resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.53.tgz#5e056b8fca9f9114edb98e842581b038d0861fb9" + integrity sha512-XdZFL8asas4z68k1QuIqi/BGYJpD4GYOliZxSuN1pAVdSb2Gw1fHBWo8WKpEyIJ19LeWcW5l2q30htw5ZMGU7g== + dependencies: + "@graphql-tools/url-loader" "7.17.2" + "@graphql-tools/utils" "9.1.4" + "@types/js-yaml" "^4.0.0" + "@types/json-stable-stringify" "^1.0.32" + "@types/jsonwebtoken" "^9.0.0" + chalk "^4.1.0" + debug "^4.3.1" + dotenv "^16.0.0" + graphql-request "^5.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + isomorphic-fetch "^3.0.0" + js-yaml "^4.0.0" + json-stable-stringify "^1.0.1" + jsonwebtoken "^9.0.0" + lodash "^4.17.20" + scuid "^1.1.0" + tslib "^2.4.0" + yaml-ast-parser "^0.0.43" + "@graphql-tools/relay-operation-optimizer@^6.3.7": version "6.3.7" resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.3.7.tgz#16c874a091a1a37bc308136d87277443cebe5056" @@ -2760,6 +3438,15 @@ relay-compiler "11.0.2" tslib "~2.3.0" +"@graphql-tools/relay-operation-optimizer@^6.5.0": + version "6.5.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.15.tgz#35f9c40ec7b500dacd792592d7007d6ad5c7a10b" + integrity sha512-ILviTglS0eYc4e3rbQ65KlMZ3MWggxer5hro9iDWoN4+amlG3SNo8ejkgZtmI8uQL6Se0NcFt9eASB2SGd64pw== + dependencies: + "@ardatan/relay-compiler" "12.0.0" + "@graphql-tools/utils" "9.1.4" + tslib "^2.4.0" + "@graphql-tools/schema@8.1.2", "@graphql-tools/schema@^8.0.2", "@graphql-tools/schema@^8.1.2": version "8.1.2" resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.1.2.tgz#913879da1a7889a9488e9b7dc189e7c83eff74be" @@ -2770,6 +3457,45 @@ tslib "~2.3.0" value-or-promise "1.0.10" +"@graphql-tools/schema@9.0.13", "@graphql-tools/schema@^9.0.0": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.13.tgz#56b994777df29ac36586a3200fb6397abf7b9d83" + integrity sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg== + dependencies: + "@graphql-tools/merge" "8.3.15" + "@graphql-tools/utils" "9.1.4" + tslib "^2.4.0" + value-or-promise "1.0.12" + +"@graphql-tools/schema@9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.4.tgz#1a74608b57abf90fae6fd929d25e5482c57bc05d" + integrity sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ== + dependencies: + "@graphql-tools/merge" "8.3.6" + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/url-loader@7.17.2", "@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.9.7": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.2.tgz#34ca59dd7f1c0e2f3b987308718d1068beb95799" + integrity sha512-VgCXa5vQzcM13+loJvVHLXltp3qN8PHUTeth50cImUhCm3qtRwOeuSYjpph38vllPb8DKxsZkNFxzYgzscWIow== + dependencies: + "@ardatan/sync-fetch" "0.0.1" + "@graphql-tools/delegate" "9.0.22" + "@graphql-tools/executor-graphql-ws" "0.0.6" + "@graphql-tools/executor-http" "0.1.1" + "@graphql-tools/executor-legacy-ws" "0.0.6" + "@graphql-tools/utils" "9.1.4" + "@graphql-tools/wrap" "9.3.1" + "@types/ws" "^8.0.0" + "@whatwg-node/fetch" "^0.6.0" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + value-or-promise "^1.0.11" + ws "8.12.0" + "@graphql-tools/url-loader@^7.0.11", "@graphql-tools/url-loader@^7.0.3": version "7.0.12" resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.0.12.tgz#846e358d7e8b6a24b501778f42422007d175b134" @@ -2812,6 +3538,38 @@ dependencies: tslib "~2.3.0" +"@graphql-tools/utils@8.12.0": + version "8.12.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.12.0.tgz#243bc4f5fc2edbc9e8fd1038189e57d837cbe31f" + integrity sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@9.1.4", "@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.1.1": + version "9.1.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.1.4.tgz#2c9e0aefc9655dd73247667befe3c850ec014f3f" + integrity sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@^8.8.0": + version "8.13.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.13.1.tgz#b247607e400365c2cd87ff54654d4ad25a7ac491" + integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/wrap@9.3.1": + version "9.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.1.tgz#d0718d87080e7a54655d629a78b08c9d39f314ea" + integrity sha512-uzY1HKc7qMErWL3ybv8bFG3hI1rTJPVYQ8WeJkCF/r/+aHEkUj0Bo2PYZrZTX1UIr3Tb4P5GyhqYBgZOXraZjw== + dependencies: + "@graphql-tools/delegate" "9.0.22" + "@graphql-tools/schema" "9.0.13" + "@graphql-tools/utils" "9.1.4" + tslib "^2.4.0" + value-or-promise "1.0.12" + "@graphql-tools/wrap@^8.0.13": version "8.0.13" resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-8.0.13.tgz#17a4096efbc64e15b27a74135d920c8bd3e5385a" @@ -2823,6 +3581,11 @@ tslib "~2.3.0" value-or-promise "1.0.10" +"@graphql-typed-document-node/core@3.1.1", "@graphql-typed-document-node/core@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" + integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -2855,6 +3618,34 @@ dependencies: "@hapi/hoek" "^8.3.0" +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@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" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + "@iarna/toml@^2.2.5": version "2.2.5" resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" @@ -2882,6 +3673,46 @@ cssnano-preset-default "^4.0.0" postcss "^7.0.0" +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + "@kleros/gtcr-encoder@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@kleros/gtcr-encoder/-/gtcr-encoder-1.4.0.tgz#8c2dc9497e271ab7a84da124c43ba449bc6e39bc" @@ -2948,11 +3779,24 @@ "@nodelib/fs.stat" "2.0.3" run-parallel "^1.1.9" +"@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" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + "@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" @@ -2966,6 +3810,14 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" +"@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@nomicfoundation/ethereumjs-block@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz#fdd5c045e7baa5169abeed0e1202bf94e4481c49" @@ -3212,15 +4064,35 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.2.0.tgz#3e6b3a7662d8ed64271ade96ef42655db983fd9d" integrity sha512-bUOmkSoPkjnUyMiKo6RYnb0VHBk5D9KKDAgNLzF41aqAM3TeE0yGdFF5dVRcV60pZdJLlyFT/jjXIZCWyyEzAQ== -"@peculiar/asn1-schema@^2.0.12", "@peculiar/asn1-schema@^2.0.26": - version "2.0.27" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.0.27.tgz#1ee3b2b869ff3200bcc8ec60e6c87bd5a6f03fe0" - integrity sha512-1tIx7iL3Ma3HtnNS93nB7nhyI0soUJypElj9owd4tpMrRDmeJ8eZubsdq1sb0KSaCs5RqZNoABCP6m5WtnlVhQ== +"@peculiar/asn1-ecc@^2.3.4": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.3.4.tgz#f120091bde2ecd1e4f4691b46a2d18a74effce20" + integrity sha512-Iid8DVaVg9/BGlLUKjAbQYF72kk3XZucuIgZm6OEFzF15IrfOAVPMI0yJ/JvrM2tREb9BDDIrHLHmV6QQngM+g== dependencies: - "@types/asn1js" "^2.0.0" - asn1js "^2.0.26" - pvtsutils "^1.1.1" - tslib "^2.0.3" + "@peculiar/asn1-schema" "^2.3.3" + "@peculiar/asn1-x509" "^2.3.4" + asn1js "^3.0.5" + tslib "^2.4.0" + +"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0", "@peculiar/asn1-schema@^2.3.3": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz#21418e1f3819e0b353ceff0c2dad8ccb61acd777" + integrity sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +"@peculiar/asn1-x509@^2.3.4": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.3.4.tgz#416bfd9ccdba3c512354d9d43d67969d6084f2fa" + integrity sha512-NhA6U76kiGKTQG2WQyGfRS/piYHt7HxUsGb0IvQaiJheuucKb2CYu0/tOk1dayZcvFf6Pnf9HjFGQ/5ud/ndRQ== + dependencies: + "@peculiar/asn1-schema" "^2.3.3" + asn1js "^3.0.5" + ipaddr.js "^2.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" "@peculiar/json-schema@^1.1.12": version "1.1.12" @@ -3229,22 +4101,32 @@ dependencies: tslib "^2.0.0" -"@peculiar/webcrypto@^1.1.1": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.1.4.tgz#cbbe2195e5e6f879780bdac9a66bcbaca75c483c" - integrity sha512-gEVxfbseFDV0Za3AmjTrRB+wigEMOejHDzoo571e8/YWD33Ejmk0XPF3+G+VaN8+5C5IWZx4CPvxQZ7mF2dvNA== +"@peculiar/webcrypto@^1.4.0": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" + integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== dependencies: - "@peculiar/asn1-schema" "^2.0.26" + "@peculiar/asn1-schema" "^2.3.0" "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.1.1" - tslib "^2.0.3" - webcrypto-core "^1.1.8" + pvtsutils "^1.3.2" + tslib "^2.4.1" + webcrypto-core "^1.7.4" "@protobufjs/utf8@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@repeaterjs/repeater@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" + integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== + +"@rescript/std@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@rescript/std/-/std-9.0.0.tgz#df53f3fa5911cb4e85bd66b92e9e58ddf3e4a7e1" + integrity sha512-zGzFsgtZ44mgL4Xef2gOy1hrRVdrs9mcxCOOKZrIPsmbZW14yTkaF591GXxpQvjXiHtgZ/iA9qLyWH6oSReIxQ== + "@resolver-engine/core@^0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@resolver-engine/core/-/core-0.3.3.tgz#590f77d85d45bc7ecc4e06c654f41345db6ca967" @@ -3427,6 +4309,11 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "@typechain/ethers-v5@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz#cd3ca1590240d587ca301f4c029b67bfccd08810" @@ -3434,11 +4321,6 @@ dependencies: ethers "^5.0.2" -"@types/asn1js@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/asn1js/-/asn1js-2.0.0.tgz#10ca75692575744d0117098148a8dc84cbee6682" - integrity sha512-Jjzp5EqU0hNpADctc/UqhiFbY1y2MqIxBVa2S4dBlbnZHTLPMuggoL5q43X63LpsOIINRDirBjP56DUUKIUWIA== - "@types/async-eventemitter@^0.2.1": version "0.2.1" resolved "https://registry.yarnpkg.com/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz#f8e6280e87e8c60b2b938624b0a3530fb3e24712" @@ -3478,6 +4360,13 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@types/concat-stream@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" + integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== + dependencies: + "@types/node" "*" + "@types/connect@^3.4.33": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" @@ -3504,6 +4393,13 @@ "@types/qs" "*" "@types/range-parser" "*" +"@types/form-data@0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" + integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== + dependencies: + "@types/node" "*" + "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -3538,6 +4434,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "@types/json-stable-stringify@^1.0.32": version "1.0.33" resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.33.tgz#099b0712d824d15e2660c20e1c16e6a8381f308c" @@ -3550,6 +4451,13 @@ dependencies: "@types/node" "*" +"@types/jsonwebtoken@^9.0.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz#29b1369c4774200d6d6f63135bf3d1ba3ef997a4" + integrity sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw== + dependencies: + "@types/node" "*" + "@types/keyv@^3.1.4": version "3.1.4" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" @@ -3607,6 +4515,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.2.tgz#ace1880c03594cc3e80206d96847157d8e7fa349" integrity sha512-bnoqK579sAYrQbp73wwglccjJ4sfRdKU7WNEZ5FW4K2U6Kc0/eZ5kvXG0JKsEKFB50zrFmfFt52/cvBbZa7eXg== +"@types/node@^10.0.3": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + "@types/node@^12.12.54": version "12.20.24" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" @@ -3617,6 +4530,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.56.tgz#83591a89723d8ec3eaf722137e1784a7351edb6c" integrity sha512-8OdIupOIZtmObR13fvGyTvpcuzKmMugkATeVcfNwCjGtHxhjEKmOvLqXwR8U9VOtNnZ4EXaSfNiLVsPinaCXkQ== +"@types/node@^8.0.0": + version "8.10.66" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" + integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== + "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" @@ -3649,7 +4567,7 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@types/qs@*": +"@types/qs@*", "@types/qs@^6.2.31": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== @@ -3680,6 +4598,11 @@ dependencies: "@types/node" "*" +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + "@types/sinon-chai@^3.2.3": version "3.2.3" resolved "https://registry.yarnpkg.com/@types/sinon-chai/-/sinon-chai-3.2.3.tgz#afe392303dda95cc8069685d1e537ff434fa506e" @@ -3732,16 +4655,27 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^2.18.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.24.0.tgz#a86cf618c965a462cddf3601f594544b134d6d68" - integrity sha512-wJRBeaMeT7RLQ27UQkDFOu25MqFOBus8PtOa9KaT5ZuxC1kAsd7JEHqWt4YXuY9eancX0GK9C68i5OROnlIzBA== +"@types/ws@^8.0.0": + version "8.5.4" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" + integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== dependencies: - "@typescript-eslint/experimental-utils" "2.24.0" - eslint-utils "^1.4.3" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - tsutils "^3.17.1" + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz#112e6ae1e23a1dc8333ce82bb9c65c2608b4d8a3" + integrity sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg== + dependencies: + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/type-utils" "5.48.2" + "@typescript-eslint/utils" "5.48.2" + debug "^4.3.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + regexpp "^3.2.0" + semver "^7.3.7" + tsutils "^3.21.0" "@typescript-eslint/eslint-plugin@^2.34.0": version "2.34.0" @@ -3753,15 +4687,6 @@ regexpp "^3.0.0" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.24.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.24.0.tgz#a5cb2ed89fedf8b59638dc83484eb0c8c35e1143" - integrity sha512-DXrwuXTdVh3ycNCMYmWhUzn/gfqu9N0VzNnahjiDJvcyhfBy4gb59ncVZVxdp5XzBC77dCncu0daQgOkbvPwBw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.24.0" - eslint-scope "^5.0.0" - "@typescript-eslint/experimental-utils@2.34.0": version "2.34.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" @@ -3772,15 +4697,15 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^2.18.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.24.0.tgz#2cf0eae6e6dd44d162486ad949c126b887f11eb8" - integrity sha512-H2Y7uacwSSg8IbVxdYExSI3T7uM1DzmOn2COGtCahCC3g8YtM1xYAPi2MAHyfPs61VKxP/J/UiSctcRgw4G8aw== +"@typescript-eslint/parser@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3" + integrity sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw== dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.24.0" - "@typescript-eslint/typescript-estree" "2.24.0" - eslint-visitor-keys "^1.1.0" + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/typescript-estree" "5.48.2" + debug "^4.3.4" "@typescript-eslint/parser@^2.34.0": version "2.34.0" @@ -3792,18 +4717,28 @@ "@typescript-eslint/typescript-estree" "2.34.0" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@2.24.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.24.0.tgz#38bbc8bb479790d2f324797ffbcdb346d897c62a" - integrity sha512-RJ0yMe5owMSix55qX7Mi9V6z2FDuuDpN6eR5fzRJrp+8in9UF41IGNQHbg5aMK4/PjVaEQksLvz0IA8n+Mr/FA== +"@typescript-eslint/scope-manager@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc" + integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw== dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^6.3.0" - tsutils "^3.17.1" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/visitor-keys" "5.48.2" + +"@typescript-eslint/type-utils@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7" + integrity sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew== + dependencies: + "@typescript-eslint/typescript-estree" "5.48.2" + "@typescript-eslint/utils" "5.48.2" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e" + integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA== "@typescript-eslint/typescript-estree@2.34.0": version "2.34.0" @@ -3818,6 +4753,41 @@ semver "^7.3.2" tsutils "^3.17.1" +"@typescript-eslint/typescript-estree@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0" + integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg== + dependencies: + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/visitor-keys" "5.48.2" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3" + integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.48.2" + "@typescript-eslint/types" "5.48.2" + "@typescript-eslint/typescript-estree" "5.48.2" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.48.2": + version "5.48.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060" + integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ== + dependencies: + "@typescript-eslint/types" "5.48.2" + eslint-visitor-keys "^3.3.0" + "@ungap/promise-all-settled@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" @@ -4480,6 +5450,21 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@whatwg-node/fetch@0.6.2", "@whatwg-node/fetch@^0.6.0": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.2.tgz#fe4837505f6fc91bcfd6e12cdcec66f4aecfeecc" + integrity sha512-fCUycF1W+bI6XzwJFnbdDuxIldfKM3w8+AzVCLGlucm0D+AQ8ZMm2j84hdcIhfV6ZdE4Y1HFVrHosAxdDZ+nPw== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + abort-controller "^3.0.0" + busboy "^1.6.0" + form-data-encoder "^1.7.1" + formdata-node "^4.3.1" + node-fetch "^2.6.7" + undici "^5.12.0" + urlpattern-polyfill "^6.0.2" + web-streams-polyfill "^3.2.0" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -4625,6 +5610,11 @@ acorn-jsx@^5.0.0, acorn-jsx@^5.2.0: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== +acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + acorn-walk@^6.0.1: version "6.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" @@ -4655,16 +5645,21 @@ acorn@^7.2.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.8.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + address@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== -addressparser@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-0.3.2.tgz#59873f35e8fcf6c7361c10239261d76e15348bb2" - integrity sha1-WYc/Nej89sc2HBAjkmHXbhU0i7I= - adm-zip@^0.4.16: version "0.4.16" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" @@ -4888,12 +5883,12 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apisauce@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.1.tgz#0b8bc7f2544e6ef710a6fa1d6f49583856940dd2" - integrity sha512-P4SsLvmsH8BLLruBn/nsO+65j+ChZlGQ2zC5avCIjbWstYS4PgjxeVWtbeVwFGEWX7dEkLp85OvdapGXy1zS8g== +apisauce@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-1.1.5.tgz#31d41a5cf805e401266cec67faf1a50f4aeae234" + integrity sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA== dependencies: - axios "^0.21.1" + axios "^0.21.2" ramda "^0.25.0" app-module-path@^2.2.0: @@ -4999,7 +5994,7 @@ arrify@^2.0.0: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asap@~2.0.3: +asap@~2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= @@ -5035,38 +6030,35 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -asn1js@^2.0.26: - version "2.0.26" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-2.0.26.tgz#0a6d435000f556a96c6012969d9704d981b71251" - integrity sha512-yG89F0j9B4B0MKIcFyWWxnpZPLaNTjCj4tkE3fjbAoo0qmpGw0PYYqSbX/4ebnd9Icn8ZgK4K1fvDyEtW1JYtQ== +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== dependencies: - pvutils latest + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" -"assemblyscript@git+https://github.com/AssemblyScript/assemblyscript.git#v0.6": - version "0.6.0" - resolved "git+https://github.com/AssemblyScript/assemblyscript.git#3ed76a97f05335504166fce1653da75f4face28f" +assemblyscript@0.19.10: + version "0.19.10" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.10.tgz#7ede6d99c797a219beb4fa4614c3eab9e6343c8e" + integrity sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg== dependencies: - "@protobufjs/utf8" "^1.1.0" - binaryen "77.0.0-nightly.20190407" - glob "^7.1.3" + binaryen "101.0.0-nightly.20210723" long "^4.0.0" - opencollective-postinstall "^2.0.0" - source-map-support "^0.5.11" -"assemblyscript@github:assemblyscript/assemblyscript#v0.6": - version "0.6.0" - resolved "https://codeload.github.com/assemblyscript/assemblyscript/tar.gz/3ed76a97f05335504166fce1653da75f4face28f" +assemblyscript@0.19.23: + version "0.19.23" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.23.tgz#16ece69f7f302161e2e736a0f6a474e6db72134c" + integrity sha512-fwOQNZVTMga5KRsfY80g7cpOl4PsFQczMwHzdtgoqLXaYhkhavufKb0sB0l3T1DUxpAufA0KNhlbpuuhZUwxMA== dependencies: - "@protobufjs/utf8" "^1.1.0" - binaryen "77.0.0-nightly.20190407" - glob "^7.1.3" - long "^4.0.0" - opencollective-postinstall "^2.0.0" - source-map-support "^0.5.11" + binaryen "102.0.0-nightly.20211028" + long "^5.2.0" + source-map-support "^0.5.20" -"assemblyscript@https://github.com/AssemblyScript/assemblyscript#36040d5b5312f19a025782b5e36663823494c2f3": +"assemblyscript@github:assemblyscript/assemblyscript#v0.6": version "0.6.0" - resolved "https://github.com/AssemblyScript/assemblyscript#36040d5b5312f19a025782b5e36663823494c2f3" + resolved "https://codeload.github.com/assemblyscript/assemblyscript/tar.gz/3ed76a97f05335504166fce1653da75f4face28f" dependencies: "@protobufjs/utf8" "^1.1.0" binaryen "77.0.0-nightly.20190407" @@ -5219,7 +6211,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== -axios@^0.21.1: +axios@^0.21.1, axios@^0.21.2: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== @@ -5721,7 +6713,7 @@ babel-preset-env@^1.7.0: invariant "^2.2.2" semver "^5.3.0" -babel-preset-fbjs@^3.3.0: +babel-preset-fbjs@^3.3.0, babel-preset-fbjs@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== @@ -5945,6 +6937,25 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== +binary-install-raw@0.0.13: + version "0.0.13" + resolved "https://registry.yarnpkg.com/binary-install-raw/-/binary-install-raw-0.0.13.tgz#43a13c6980eb9844e2932eb7a91a56254f55b7dd" + integrity sha512-v7ms6N/H7iciuk6QInon3/n2mu7oRX+6knJ9xFPsJ3rQePgAqcR3CRTwUheFd8SLbiq4LL7Z4G/44L9zscdt9A== + dependencies: + axios "^0.21.1" + rimraf "^3.0.2" + tar "^6.1.0" + +binaryen@101.0.0-nightly.20210723: + version "101.0.0-nightly.20210723" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz#b6bb7f3501341727681a03866c0856500eec3740" + integrity sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA== + +binaryen@102.0.0-nightly.20211028: + version "102.0.0-nightly.20211028" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-102.0.0-nightly.20211028.tgz#8f1efb0920afd34509e342e37f84313ec936afb2" + integrity sha512-GCJBVB5exbxzzvyt8MGDv/MeUjs6gkXDvf4xOIItRBptYl0Tz5sm1o/uG95YK0L0VeG5ajDu3hRtkBP2kzqC5w== + binaryen@77.0.0-nightly.20190407: version "77.0.0-nightly.20190407" resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-77.0.0-nightly.20190407.tgz#fbe4f8ba0d6bd0809a84eb519d2d5b5ddff3a7d1" @@ -5999,7 +7010,7 @@ bl@^4.0.0: inherits "^2.0.4" readable-stream "^3.4.0" -bl@^4.0.3: +bl@^4.0.3, 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== @@ -6161,7 +7172,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -6299,6 +7310,16 @@ browserslist@^4.16.6: escalade "^3.1.1" node-releases "^1.1.71" +browserslist@^4.21.3: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -6438,6 +7459,13 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -6677,6 +7705,11 @@ caniuse-lite@^1.0.30001219: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001243.tgz#d9250155c91e872186671c523f3ae50cfc94a3aa" integrity sha512-vNxw9mkTBtkmLFnJRv/2rhs1yufpDfCkBZexG3Y0xdOH2Z/eE/85E4Dl5j1YUN34nZVsSp6vVRFQRrez9wJMRA== +caniuse-lite@^1.0.30001400: + version "1.0.30001446" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz#6d4ba828ab19f49f9bcd14a8430d30feebf1e0c5" + integrity sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw== + capital-case@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" @@ -6691,7 +7724,7 @@ case-sensitive-paths-webpack-plugin@^2.3.0: resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== -caseless@~0.12.0: +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 sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= @@ -6720,6 +7753,14 @@ chai@^4.1.2, chai@^4.2.0: pathval "^1.1.0" type-detect "^4.0.5" +chalk@3.0.0, chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -6740,14 +7781,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" @@ -6772,6 +7805,22 @@ change-case-all@1.0.14: upper-case "^2.0.2" upper-case-first "^2.0.2" +change-case-all@1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" + integrity sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ== + dependencies: + change-case "^4.1.2" + is-lower-case "^2.0.2" + is-upper-case "^2.0.2" + lower-case "^2.0.2" + lower-case-first "^2.0.2" + sponge-case "^1.0.1" + swap-case "^2.0.2" + title-case "^3.0.3" + upper-case "^2.0.2" + upper-case-first "^2.0.2" + change-case@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" @@ -6876,21 +7925,6 @@ chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.0.2, chokidar@^3.4.1, chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - 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" - chokidar@^3.3.0: version "3.4.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" @@ -6921,11 +7955,31 @@ chokidar@^3.4.0: optionalDependencies: fsevents "~2.1.2" +chokidar@^3.4.1, chokidar@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + 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, chownr@^1.1.1, chownr@^1.1.2: 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== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -7147,6 +8201,11 @@ cli-spinners@^2.2.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== +cli-spinners@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== + cli-table3@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" @@ -7336,7 +8395,17 @@ colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -colors@^1.1.2, colors@^1.3.3, colors@^1.4.0: +colorette@^2.0.16: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +colors@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + +colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -7407,6 +8476,11 @@ common-tags@1.8.0, common-tags@^1.8.0: resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== +common-tags@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -7442,7 +8516,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.5.1, concat-stream@~1.6.2: +concat-stream@^1.5.0, concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2, concat-stream@~1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -7654,6 +8728,11 @@ cosmiconfig-toml-loader@1.0.0: dependencies: "@iarna/toml" "^2.2.5" +cosmiconfig-typescript-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" + integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== + cosmiconfig@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -7676,6 +8755,16 @@ cosmiconfig@7.0.0, cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" + integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + cosmiconfig@^5.0.0, cosmiconfig@^5.0.7: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -7745,6 +8834,13 @@ cross-fetch@^2.1.0, cross-fetch@^2.1.1: node-fetch "^2.6.7" whatwg-fetch "^2.0.4" +cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -7774,7 +8870,7 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" -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" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -8011,6 +9107,11 @@ dataloader@2.0.0: resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.0.0.tgz#41eaf123db115987e21ca93c005cd7753c55fe6f" integrity sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ== +dataloader@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.1.0.tgz#c69c538235e85e7ac6c6c444bae8ecabf5de9df7" + integrity sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ== + datastore-core@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-0.7.0.tgz#c5d3cded07f3c81ca49c5ee6f20e9a60cc03adf1" @@ -8084,7 +9185,7 @@ debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, de dependencies: ms "2.1.2" -debug@4.3.4, debug@^4.3.3: +debug@4.3.4, debug@^4.3.2, 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== @@ -8156,6 +9257,11 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -8410,12 +9516,10 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -docker-compose@^0.23.2: - version "0.23.13" - resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.13.tgz#77d37bd05b6a966345f631e6d05e961c79514f06" - integrity sha512-/9fYC4g3AO+qsqxIZhmbVnFvJJPcYEV2yJbAPPXH+6AytU3urIY8lUAXOlvY8sl4u25pdKu1JrOfAmWC7lJDJg== - dependencies: - yaml "^1.10.2" +docker-compose@0.23.4: + version "0.23.4" + resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.4.tgz#43bcabcde55a6ba2873b52fe0ccd99dd8fdceba8" + integrity sha512-yWdXby9uQ8o4syOfvoSJ9ZlTnLipvUmDn59uaYY5VGIUSUAfMPPGqE1DE3pOCnfSg9Tl9UOOFO0PCSAzuIHmuA== docker-modem@^1.0.8: version "1.0.9" @@ -8427,7 +9531,7 @@ docker-modem@^1.0.8: readable-stream "~1.0.26-4" split-ca "^1.0.0" -dockerode@^2.5.8: +dockerode@2.5.8: version "2.5.8" resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" integrity sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw== @@ -8546,6 +9650,11 @@ dotenv@^10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== +dotenv@^16.0.0: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + dotenv@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" @@ -8567,6 +9676,11 @@ drbg.js@^1.0.1: create-hash "^1.1.2" create-hmac "^1.1.4" +dset@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" + integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -8649,6 +9763,11 @@ electron-to-chromium@^1.3.723: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.769.tgz#73ad7e3f2d435810b6f8b29617ec344c782fcbed" integrity sha512-B+3hW8D76/uoTPSobWI3D/CFn2S4jPn88dVJ+BkD88Lz6LijQpL+hfdzIFJGTQK4KdE0XwmNbjUQFH1OQVwKdQ== +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" @@ -8667,7 +9786,7 @@ elliptic@6.5.3: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -elliptic@6.5.4: +elliptic@6.5.4, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -8693,28 +9812,6 @@ elliptic@^6.0.0, elliptic@^6.4.0, elliptic@^6.5.2: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -emailjs-base64@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/emailjs-base64/-/emailjs-base64-1.1.4.tgz#392fa38cb6aa35dccd3af3637ffc14c1c7ce9612" - integrity sha512-4h0xp1jgVTnIQBHxSJWXWanNnmuc5o+k4aHEpcLXSToN8asjB5qbXAexs7+PEsUKcEyBteNYsSvXUndYT2CGGA== - -emailjs-mime-codec@^2.0.7: - version "2.0.9" - resolved "https://registry.yarnpkg.com/emailjs-mime-codec/-/emailjs-mime-codec-2.0.9.tgz#d184451b6f2e55c5868b0f0a82d18fe2b82f0c97" - integrity sha512-7qJo4pFGcKlWh/kCeNjmcgj34YoJWY0ekZXEHYtluWg4MVBnXqGM4CRMtZQkfYwitOhUgaKN5EQktJddi/YIDQ== - dependencies: - emailjs-base64 "^1.1.4" - ramda "^0.26.1" - text-encoding "^0.7.0" - -emailjs@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/emailjs/-/emailjs-2.2.0.tgz#ba5b23e4a4b0a4510f652e873b154e9407b6ca03" - integrity sha1-ulsj5KSwpFEPZS6HOxVOlAe2ygM= - dependencies: - addressparser "^0.3.2" - emailjs-mime-codec "^2.0.7" - emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -8800,7 +9897,7 @@ enquirer@2.3.4, enquirer@^2.3.0: dependencies: ansi-colors "^3.2.1" -enquirer@^2.3.6: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -8947,7 +10044,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escape-string-regexp@4.0.0: +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" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -8987,10 +10084,10 @@ eslint-loader@^2.2.1: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-plugin-prettier@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" - integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== +eslint-plugin-prettier@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" + integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== dependencies: prettier-linter-helpers "^1.0.0" @@ -9019,6 +10116,22 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + eslint-utils@^1.3.1, eslint-utils@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" @@ -9026,14 +10139,21 @@ eslint-utils@^1.3.1, eslint-utils@^1.4.3: dependencies: eslint-visitor-keys "^1.1.0" -eslint-utils@^2.0.0: +eslint-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0: +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== @@ -9043,6 +10163,62 @@ eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + eslint@^5.6.0: version "5.16.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" @@ -9085,7 +10261,7 @@ eslint@^5.6.0: table "^5.2.3" text-table "^0.2.0" -eslint@^6.7.2, eslint@^6.8.0: +eslint@^6.8.0: version "6.8.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== @@ -9128,6 +10304,51 @@ eslint@^6.7.2, eslint@^6.8.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" +eslint@^8.31.0: + version "8.31.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" + integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== + dependencies: + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + espree@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" @@ -9146,6 +10367,24 @@ espree@^6.1.2: acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +espree@^9.4.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -9158,6 +10397,13 @@ esquery@^1.0.1: dependencies: estraverse "^4.0.0" +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + esrecurse@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" @@ -9165,11 +10411,23 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -10049,7 +11307,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-files@11.0.0: +extract-files@11.0.0, extract-files@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== @@ -10086,6 +11344,11 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== +fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-diff@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" @@ -10126,12 +11389,23 @@ fast-glob@^3.1.1: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -10318,6 +11592,13 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" +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" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + file-loader@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" @@ -10463,6 +11744,14 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + flat@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" @@ -10485,6 +11774,11 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + flow-stoplight@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/flow-stoplight/-/flow-stoplight-1.0.0.tgz#4a292c5bcff8b39fa6cc0cb1a853d86f27eeff7b" @@ -10544,6 +11838,11 @@ form-data-encoder@1.7.1: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== +form-data-encoder@^1.7.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" + integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== + form-data@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -10553,6 +11852,15 @@ form-data@4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^2.2.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + form-data@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" @@ -10571,6 +11879,14 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +formdata-node@^4.3.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" + integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.3" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -10611,6 +11927,16 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" + integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.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" @@ -10863,6 +12189,11 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== +get-port@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -10933,6 +12264,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" @@ -11017,6 +12355,13 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globals@^13.19.0, globals@^13.6.0, globals@^13.9.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + dependencies: + type-fest "^0.20.2" + globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" @@ -11048,6 +12393,18 @@ globby@^11.0.1, globby@^11.0.3, globby@^11.0.4: merge2 "^1.3.0" slash "^3.0.0" +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -11085,15 +12442,14 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -gluegun@^4.3.1: - version "4.7.0" - resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-4.7.0.tgz#d1e88828ec6737d966619fff07c04f7e689dc59e" - integrity sha512-St+J/rly0FoWLeISgBGDuymwF3/b8OdmxBCbSvK1hXEoRbaaATiRpPepJSJWuRYR7cGR7Hy9drgQwGFBAolhbQ== +"gluegun@https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep": + version "4.3.1" + resolved "https://github.com/edgeandnode/gluegun#b34b9003d7bf556836da41b57ef36eb21570620a" dependencies: - apisauce "^2.0.1" + apisauce "^1.0.1" app-module-path "^2.2.0" cli-table3 "~0.5.0" - colors "^1.3.3" + colors "1.3.3" cosmiconfig "6.0.0" cross-spawn "^7.0.0" ejs "^2.6.1" @@ -11226,6 +12582,27 @@ graceful-fs@^4.2.0: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphql-config@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.4.0.tgz#4b2d34d846bd4b9a40afbadfc5a4426668963c43" + integrity sha512-QUrX7R4htnTBTi83a0IlIilWVfiLEG8ANFlHRcxoZiTvOXTbgan67SUdGe1OlopbDuyNgtcy4ladl3Gvk4C36A== + dependencies: + "@graphql-tools/graphql-file-loader" "^7.3.7" + "@graphql-tools/json-file-loader" "^7.3.7" + "@graphql-tools/load" "^7.5.5" + "@graphql-tools/merge" "^8.2.6" + "@graphql-tools/url-loader" "^7.9.7" + "@graphql-tools/utils" "^9.0.0" + cosmiconfig "8.0.0" + minimatch "4.2.1" + string-env-interpolation "1.0.1" + tslib "^2.4.0" + graphql-config@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.0.1.tgz#4ce43cb54f3f39dde5f023d6f8f04064edc16e6e" @@ -11243,6 +12620,11 @@ graphql-config@^4.0.1: minimatch "3.0.4" string-env-interpolation "1.0.1" +graphql-import-node@^0.0.5: + version "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-request@^3.3.0, graphql-request@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-3.5.0.tgz#7e69574e15875fb3f660a4b4be3996ecd0bbc8b7" @@ -11252,6 +12634,16 @@ graphql-request@^3.3.0, graphql-request@^3.5.0: extract-files "^9.0.0" form-data "^3.0.0" +graphql-request@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.1.0.tgz#dbc8feee27d21b993cd5da2d3af67821827b240a" + integrity sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" + graphql-tag@^2.11.0: version "2.12.5" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.5.tgz#5cff974a67b417747d05c8d9f5f3cb4495d0db8f" @@ -11259,21 +12651,31 @@ graphql-tag@^2.11.0: dependencies: tslib "^2.1.0" +graphql-ws@5.11.2: + version "5.11.2" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.11.2.tgz#d5e0acae8b4d4a4cf7be410a24135cfcefd7ddc0" + integrity sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w== + graphql-ws@^5.0.0: version "5.4.1" resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.4.1.tgz#76fb4c39dfa44a961546995b6bb5320726ff5f71" integrity sha512-maBduPneZOFYb3otLgc9/U+fU3f9MVXLKg6lVVLqA9BDQQ6YR7YhQO21Rf9+44IRBi4l8m35lynFMFQTzN3eAQ== -graphql@^15.5.0: - version "15.5.3" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.3.tgz#c72349017d5c9f5446a897fe6908b3186db1da00" - integrity sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA== +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@^15.5.1: version "15.5.1" resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.1.tgz#f2f84415d8985e7b84731e7f3536f8bb9d383aad" integrity sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw== +graphql@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== + growl@1.10.5: version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" @@ -11288,27 +12690,6 @@ gtoken@^5.0.4: google-p12-pem "^3.0.3" jws "^4.0.0" -gun-cli@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/gun-cli/-/gun-cli-1.7.1.tgz#912c011a59290e480ea44a526e98fed642582d77" - integrity sha512-OxO56GoD6EK31Lms2DIQUr9nSthuw5W9PwwgWi/WIxYfp72L496CURNWT3g6AvIh1q2hcTVw8N/i5zOiLVo/Iw== - dependencies: - colors "^1.4.0" - gun "^0.2020.301" - minimist "^1.2.5" - monitorctrlc "^2.0.1" - -gun@^0.2020.301, "gun@https://github.com/amark/gun": - version "0.2020.520" - resolved "https://github.com/amark/gun#4ded14186f8b5393532bca2abb35fb45861aa237" - dependencies: - ws "^7.2.1" - optionalDependencies: - "@peculiar/webcrypto" "^1.1.1" - buffer "^5.4.3" - emailjs "^2.2.0" - text-encoding "^0.7.0" - gzip-size@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" @@ -11664,6 +13045,16 @@ htmlparser2@^3.3.0: inherits "^2.0.1" readable-stream "^3.1.1" +http-basic@^8.1.1: + version "8.1.3" + resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" + integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== + dependencies: + caseless "^0.12.0" + concat-stream "^1.6.2" + http-response-object "^3.0.1" + parse-cache-control "^1.0.1" + http-cache-semantics@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" @@ -11725,6 +13116,15 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -11744,6 +13144,13 @@ http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" +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" + integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== + 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" @@ -11850,15 +13257,20 @@ ignore@^5.1.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + immediate@^3.2.3, immediate@~3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= -immutable@^3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= +immutable@4.2.1: + version "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.0.0-rc.12" @@ -12036,6 +13448,27 @@ inquirer@^7.1.0, inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" +inquirer@^8.0.0: + version "8.2.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + 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 "^7.0.0" + interface-datastore@^0.8.0, interface-datastore@~0.8.0: version "0.8.3" resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-0.8.3.tgz#1b948d9f8231edbaaec763a75a339e70e5f48883" @@ -12109,6 +13542,11 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + ipfs-block-service@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/ipfs-block-service/-/ipfs-block-service-0.16.0.tgz#bca30c6c04ce10f78790ee6ade3c4eb333add38e" @@ -12124,7 +13562,7 @@ ipfs-block@~0.8.1: cids "~0.7.0" class-is "^1.1.0" -ipfs-http-client@^34.0.0: +ipfs-http-client@34.0.0: version "34.0.0" resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-34.0.0.tgz#8804d06a11c22306332a8ffa0949b6f672a0c9c8" integrity sha512-4RCkk8ix4Dqn6sxqFVwuXWCZ1eLFPsVaj6Ijvu1fs9VYgxgVudsW9PWwarlr4mw1xUCmPWYyXnEbGgzBrfMy0Q== @@ -12591,6 +14029,13 @@ is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-glob@4.0.3, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -12715,6 +14160,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -12950,6 +14400,11 @@ isomorphic-ws@4.0.1, 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== +isomorphic-ws@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -13020,10 +14475,10 @@ javascript-stringify@^2.0.1: resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.0.1.tgz#6ef358035310e35d667c675ed63d3eb7c1aa19e5" integrity sha512-yV+gqbd5vaOYjqlbk16EG89xB5udgjqQF3C5FAORDg4f/IS1Yc5ERCv5e/57yBcfJYw05V5JyIXabhwb75Xxow== -jayson@^3.0.2: - version "3.6.4" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.4.tgz#9e9d1ba2a75d811f254bceff61a096772fa04832" - integrity sha512-GH63DsRFFlodS8krFgAhxwYvQFmSwjsFxKnPrHQtp+BJj/tpeSj3hyBGGqmTkuq043U1Gn6u8VdsVRFZX1EEiQ== +jayson@3.6.6: + version "3.6.6" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.6.tgz#189984f624e398f831bd2be8e8c80eb3abf764a1" + integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ== dependencies: "@types/connect" "^3.4.33" "@types/express-serve-static-core" "^4.17.9" @@ -13038,7 +14493,7 @@ jayson@^3.0.2: isomorphic-ws "^4.0.1" json-stringify-safe "^5.0.1" lodash "^4.17.20" - uuid "^3.4.0" + uuid "^8.3.2" ws "^7.4.5" jest-worker@^25.4.0: @@ -13072,6 +14527,11 @@ js-queue@2.0.0: dependencies: easy-stack "^1.0.0" +js-sdsl@^4.1.4: + version "4.2.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" + integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== + js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" @@ -13317,7 +14777,7 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" -json5@^2.2.3: +json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -13371,6 +14831,16 @@ jsonwebtoken@^8.5.1: ms "^2.1.1" semver "^5.6.0" +jsonwebtoken@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" + integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw== + dependencies: + jws "^3.2.2" + lodash "^4.17.21" + ms "^2.1.1" + semver "^7.3.8" + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -13839,6 +15309,14 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + libp2p-crypto-secp256k1@~0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/libp2p-crypto-secp256k1/-/libp2p-crypto-secp256k1-0.3.1.tgz#4cbeb857f5cfe5fefb1253e6b2994420c0ca166e" @@ -13948,6 +15426,20 @@ listr2@^3.8.2: through "^2.3.8" wrap-ansi "^7.0.0" +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + listr@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" @@ -14121,6 +15613,11 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" @@ -14296,6 +15793,11 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +long@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" + integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== + looper@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/looper/-/looper-2.0.0.tgz#66cd0c774af3d4fedac53794f742db56da8f09ec" @@ -14667,6 +16169,11 @@ merge2@^1.2.3, merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== +merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + merkle-patricia-tree@2.3.2, merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" @@ -14699,6 +16206,11 @@ meros@1.1.4: resolved "https://registry.yarnpkg.com/meros/-/meros-1.1.4.tgz#c17994d3133db8b23807f62bec7f0cb276cfd948" integrity sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ== +meros@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/meros/-/meros-1.2.1.tgz#056f7a76e8571d0aaf3c7afcbe7eb6407ff7329e" + integrity sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -14840,6 +16352,13 @@ minimatch@3.0.4, minimatch@^3.0.2: dependencies: brace-expansion "^1.1.7" +minimatch@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" + integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== + dependencies: + brace-expansion "^1.1.7" + minimatch@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" @@ -14847,7 +16366,7 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.4, minimatch@^3.1.1: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -14907,6 +16426,13 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== + dependencies: + yallist "^4.0.0" + minizlib@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" @@ -14914,6 +16440,14 @@ minizlib@^1.2.1: dependencies: minipass "^2.9.0" +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -14971,7 +16505,7 @@ mkdirp@^0.5.3, mkdirp@^0.5.5: dependencies: minimist "^1.2.5" -mkdirp@^1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -15108,13 +16642,6 @@ module-error@^1.0.1, module-error@^1.0.2: resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== -monitorctrlc@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/monitorctrlc/-/monitorctrlc-2.0.1.tgz#46331b79ffe30973c0c0d224edcef7b986e89d54" - integrity sha1-RjMbef/jCXPAwNIk7c73uYbonVQ= - dependencies: - chalk "^1.1.3" - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -15445,6 +16972,11 @@ native-fetch@^3.0.0: resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -15526,6 +17058,11 @@ node-addon-api@^3.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-domexception@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-environment-flags@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" @@ -15534,12 +17071,17 @@ node-environment-flags@1.0.5: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" +node-fetch@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + node-fetch@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@2.6.7, node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -15644,6 +17186,11 @@ node-releases@^1.1.71: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== +node-releases@^2.0.6: + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== + nodeify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nodeify/-/nodeify-1.0.1.tgz#64ab69a7bdbaf03ce107b4f0335c87c0b9e91b1d" @@ -15988,6 +17535,18 @@ optionator@^0.8.1, optionator@^0.8.2, optionator@^0.8.3: type-check "~0.3.2" word-wrap "~1.2.3" +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + ora@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" @@ -16014,6 +17573,21 @@ ora@^4.0.0: strip-ansi "^6.0.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-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -16241,6 +17815,11 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-cache-control@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" + integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== + parse-filepath@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" @@ -16502,6 +18081,11 @@ picocolors@^0.2.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" @@ -16572,10 +18156,10 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -pkginfo@^0.4.1: +pkginfo@0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" - integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8= + integrity sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ== please-upgrade-node@^3.2.0: version "3.2.0" @@ -16984,6 +18568,11 @@ precond@0.2: resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw= +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== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -17006,7 +18595,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^1.13.5, prettier@^1.14.2, prettier@^1.14.3, prettier@^1.18.2: +prettier@1.19.1, prettier@^1.14.2, prettier@^1.14.3, prettier@^1.18.2: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== @@ -17093,6 +18682,13 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +promise@^8.0.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + promise@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" @@ -17284,17 +18880,17 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pvtsutils@^1.0.11, pvtsutils@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.1.1.tgz#22c2d7689139d2c36d7ef3ac3d5e29bcd818d38a" - integrity sha512-Evbhe6L4Sxwu4SPLQ4LQZhgfWDQO3qa1lju9jM5cxsQp8vE10VipcSmo7hiJW48TmiHgVLgDtC2TL6/+ND+IVg== +pvtsutils@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" + integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== dependencies: - tslib "^2.0.3" + tslib "^2.4.0" -pvutils@latest: - version "1.0.17" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.0.17.tgz#ade3c74dfe7178944fe44806626bd2e249d996bf" - integrity sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ== +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== q@^1.1.2: version "1.5.1" @@ -17314,7 +18910,7 @@ qrcode@1.4.4, qrcode@^1.4.4: pngjs "^3.3.0" yargs "^13.2.4" -qs@6.11.0, qs@^6.5.2, qs@^6.7.0: +qs@6.11.0, qs@^6.4.0, qs@^6.5.2, qs@^6.7.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -17418,11 +19014,6 @@ ramda@^0.25.0: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== -ramda@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" - integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== - ramdasauce@^2.1.0: version "2.1.3" resolved "https://registry.yarnpkg.com/ramdasauce/-/ramdasauce-2.1.3.tgz#acb45ecc7e4fc4d6f39e19989b4a16dff383e9c2" @@ -17622,6 +19213,11 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + regenerator-runtime@^0.13.4: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" @@ -17669,6 +19265,11 @@ regexpp@^3.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== +regexpp@^3.1.0, regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" @@ -17765,6 +19366,15 @@ relay-runtime@11.0.2: fbjs "^3.0.0" invariant "^2.2.4" +relay-runtime@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237" + integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== + dependencies: + "@babel/runtime" "^7.0.0" + fbjs "^3.0.0" + invariant "^2.2.4" + remedial@^1.0.7: version "1.0.8" resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0" @@ -17829,7 +19439,7 @@ request-promise-native@^1.0.7: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.79.0, request@^2.85.0, request@^2.88.0, request@^2.88.2: +request@2.88.2, request@^2.79.0, request@^2.85.0, request@^2.88.0, 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== @@ -18005,6 +19615,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -18029,7 +19644,7 @@ rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: dependencies: glob "^7.1.3" -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -18132,6 +19747,13 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" +rxjs@^7.5.5: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== + dependencies: + tslib "^2.1.0" + 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" @@ -18308,15 +19930,22 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@7.3.5, semver@^7.0.0: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== +semver@^7.2.1, semver@^7.3.7, semver@^7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -18514,6 +20143,11 @@ shell-quote@^1.6.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== +shell-quote@^1.7.3: + version "1.7.4" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" + integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== + shelljs@^0.8.3: version "0.8.5" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" @@ -18811,7 +20445,7 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.11, source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@^0.5.11, source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@^0.5.20, source-map-support@^0.5.6, source-map-support@~0.5.12: 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== @@ -19046,6 +20680,11 @@ streaming-iterables@^4.1.0: resolved "https://registry.yarnpkg.com/streaming-iterables/-/streaming-iterables-4.1.2.tgz#0a98f1460be70d8bf904f7fffaeb10b16ed708ab" integrity sha512-IzhmKnQ2thkNMUcaGsjedrxdAoXPhtIFn8hUlmSqSqafa2p0QmZudu6ImG7ckvPNfazpMfr6Ef8cxUWyIyxpxA== +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -19232,7 +20871,7 @@ strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0. resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -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== @@ -19368,6 +21007,22 @@ sync-fetch@0.3.0: buffer "^5.7.0" node-fetch "^2.6.1" +sync-request@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-6.1.0.tgz#e96217565b5e50bbffe179868ba75532fb597e68" + integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== + dependencies: + http-response-object "^3.0.1" + sync-rpc "^1.2.1" + then-request "^6.0.0" + +sync-rpc@^1.2.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" + integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== + dependencies: + get-port "^3.1.0" + table@^5.2.3: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -19378,6 +21033,17 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" +table@^6.0.9: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + table@^6.8.0: version "6.8.0" resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" @@ -19462,6 +21128,18 @@ tar@^4.0.2: safe-buffer "^5.1.2" yallist "^3.0.3" +tar@^6.1.0: + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^4.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -19514,16 +21192,28 @@ testrpc@0.0.1: resolved "https://registry.yarnpkg.com/testrpc/-/testrpc-0.0.1.tgz#83e2195b1f5873aec7be1af8cbe6dcf39edb7aed" integrity sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA== -text-encoding@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.7.0.tgz#f895e836e45990624086601798ea98e8f36ee643" - integrity sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA== - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +then-request@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" + integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== + dependencies: + "@types/concat-stream" "^1.6.0" + "@types/form-data" "0.0.33" + "@types/node" "^8.0.0" + "@types/qs" "^6.2.31" + caseless "~0.12.0" + concat-stream "^1.6.0" + form-data "^2.2.0" + http-basic "^8.1.1" + http-response-object "^3.0.1" + promise "^8.0.0" + qs "^6.4.0" + thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" @@ -19597,6 +21287,13 @@ title-case@^3.0.3: dependencies: tslib "^2.0.3" +tmp-promise@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" + integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== + dependencies: + tmp "^0.2.0" + tmp-promise@^2.0.2: version "2.1.1" resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-2.1.1.tgz#eb97c038995af74efbfe8156f5e07fdd0c935539" @@ -19604,13 +21301,6 @@ tmp-promise@^2.0.2: dependencies: tmp "0.1.0" -tmp-promise@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" - integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== - 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" @@ -19862,11 +21552,16 @@ tslib@^2, tslib@^2.1.0, tslib@~2.3.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3: +tslib@^2.0.0, tslib@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== +tslib@^2.4.0, tslib@^2.4.1, tslib@~2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + tslib@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" @@ -19915,6 +21610,13 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -19942,6 +21644,13 @@ tweetnacl@^1.0.0, tweetnacl@^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" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -19959,6 +21668,11 @@ type-fest@^0.11.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -20022,21 +21736,16 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.8.3: - version "3.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" - integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== +typescript@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== typescript@^4.3.4: version "4.3.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== -typescript@~3.9.3: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== - typewise-core@^1.2, typewise-core@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/typewise-core/-/typewise-core-1.2.0.tgz#97eb91805c7f55d2f941748fa50d315d991ef195" @@ -20113,6 +21822,13 @@ underscore@1.9.1: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== +undici@^5.12.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.15.0.tgz#cb8437c43718673a8be59df0fdd4856ff6689283" + integrity sha512-wCAZJDyjw9Myv+Ay62LAoB+hZLPW9SmKbQkbHIhMw/acKSlpn7WohdMUc/Vd4j1iSMBO0hWwU8mjB7a5p5bl8g== + dependencies: + busboy "^1.6.0" + undici@^5.4.0: version "5.10.0" resolved "https://registry.yarnpkg.com/undici/-/undici-5.10.0.tgz#dd9391087a90ccfbd007568db458674232ebf014" @@ -20225,6 +21941,14 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + upper-case-first@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" @@ -20305,6 +22029,13 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" +urlpattern-polyfill@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz#a193fe773459865a2a5c93b246bb794b13d07256" + integrity sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg== + dependencies: + braces "^3.0.2" + ursa-optional@~0.10.0: version "0.10.2" resolved "https://registry.yarnpkg.com/ursa-optional/-/ursa-optional-0.10.2.tgz#bd74e7d60289c22ac2a69a3c8dea5eb2817f9681" @@ -20453,6 +22184,16 @@ value-or-promise@1.0.10: resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.10.tgz#5bf041f1e9a8e7043911875547636768a836e446" integrity sha512-1OwTzvcfXkAfabk60UVr5NdjtjJ0Fg0T5+B1bhxtrOEwSH2fe8y4DnLgoksfCyd8yZCOQQHB0qLMQnwgCjbXLQ== +value-or-promise@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" + integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== + +value-or-promise@1.0.12, value-or-promise@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" + integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== + varint@^5.0.0, varint@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.0.tgz#d826b89f7490732fabc0c0ed693ed475dcb29ebf" @@ -20705,6 +22446,16 @@ web-encoding@^1.0.2: resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.0.4.tgz#0398d39ce2cbef5ed2617080750ed874e6153aea" integrity sha512-DcXs2lbVPzuJmn2kuDEwul2oZg7p4YMa5J2f0YzsOBHaAnBYGPNUB/rJ74DTjTKpw7F0+lSsVM8sFHE2UyBixg== +web-streams-polyfill@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" + integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== + +web-streams-polyfill@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + web-worker@^1.0.0, web-worker@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" @@ -20857,6 +22608,14 @@ web3-eth-abi@1.2.11: underscore "1.9.1" web3-utils "1.2.11" +web3-eth-abi@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz#4fac9c7d9e5a62b57f8884b37371f515c766f3f4" + integrity sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.7.0" + web3-eth-abi@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz#16e1e9be40e2527404f041a4745111211488f31a" @@ -21193,6 +22952,19 @@ web3-utils@1.2.11, web3-utils@^1.0.0-beta.31: underscore "1.9.1" utf8 "3.0.0" +web3-utils@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.0.tgz#c59f0fd43b2449357296eb54541810b99b1c771c" + integrity sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w== + dependencies: + bn.js "^4.11.9" + ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + web3-utils@1.8.2, web3-utils@^1.6.0: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.2.tgz#c32dec5e9b955acbab220eefd7715bc540b75cc9" @@ -21246,16 +23018,16 @@ web3@^1.6.0: web3-shh "1.8.2" web3-utils "1.8.2" -webcrypto-core@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.1.8.tgz#91720c07f4f2edd181111b436647ea5a282af0a9" - integrity sha512-hKnFXsqh0VloojNeTfrwFoRM4MnaWzH6vtXcaFcGjPEu+8HmBdQZnps3/2ikOFqS8bJN1RYr6mI2P/FJzyZnXg== +webcrypto-core@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" + integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== dependencies: - "@peculiar/asn1-schema" "^2.0.12" + "@peculiar/asn1-schema" "^2.1.6" "@peculiar/json-schema" "^1.1.12" - asn1js "^2.0.26" - pvtsutils "^1.0.11" - tslib "^2.0.1" + asn1js "^3.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" webidl-conversions@^3.0.0: version "3.0.1" @@ -21568,7 +23340,7 @@ window-size@^0.2.0: resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -21662,7 +23434,7 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@7.2.3, ws@^7.0.0, ws@^7.2.1: +ws@7.2.3, ws@^7.0.0: version "7.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== @@ -21677,6 +23449,11 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@8.12.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" + integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== + ws@8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.0.tgz#0b738cd484bfc9303421914b11bb4011e07615bb" @@ -21824,7 +23601,14 @@ yaml-ast-parser@^0.0.43: resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== -yaml@^1.10.0, yaml@^1.10.2, yaml@^1.5.1, yaml@^1.7.2: +yaml@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz#f0cfa865f003ab707663e4f04b3956957ea564ed" + integrity sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg== + dependencies: + "@babel/runtime" "^7.9.2" + +yaml@^1.10.0, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==