// // Copyright 2021 Vulcanize, Inc. // import { gql } from '@apollo/client/core'; import { GraphQLClient, GraphQLConfig } from '@cerc-io/ipld-eth-client'; import { queries, mutations, subscriptions } from './gql'; export class Client { _config: GraphQLConfig; _client: GraphQLClient; constructor (config: GraphQLConfig) { this._config = config; this._client = new GraphQLClient(config); } async getIsActive (blockHash: string, contractAddress: string, _point: number): Promise { const { isActive } = await this._client.query( gql(queries.isActive), { blockHash, contractAddress, _point } ); return isActive; } async getGetKeyRevisionNumber (blockHash: string, contractAddress: string, _point: number): Promise { const { getKeyRevisionNumber } = await this._client.query( gql(queries.getKeyRevisionNumber), { blockHash, contractAddress, _point } ); return getKeyRevisionNumber; } async getHasBeenLinked (blockHash: string, contractAddress: string, _point: number): Promise { const { hasBeenLinked } = await this._client.query( gql(queries.hasBeenLinked), { blockHash, contractAddress, _point } ); return hasBeenLinked; } async getIsLive (blockHash: string, contractAddress: string, _point: number): Promise { const { isLive } = await this._client.query( gql(queries.isLive), { blockHash, contractAddress, _point } ); return isLive; } async getGetContinuityNumber (blockHash: string, contractAddress: string, _point: number): Promise { const { getContinuityNumber } = await this._client.query( gql(queries.getContinuityNumber), { blockHash, contractAddress, _point } ); return getContinuityNumber; } async getGetSpawnCount (blockHash: string, contractAddress: string, _point: number): Promise { const { getSpawnCount } = await this._client.query( gql(queries.getSpawnCount), { blockHash, contractAddress, _point } ); return getSpawnCount; } async getHasSponsor (blockHash: string, contractAddress: string, _point: number): Promise { const { hasSponsor } = await this._client.query( gql(queries.hasSponsor), { blockHash, contractAddress, _point } ); return hasSponsor; } async getGetSponsor (blockHash: string, contractAddress: string, _point: number): Promise { const { getSponsor } = await this._client.query( gql(queries.getSponsor), { blockHash, contractAddress, _point } ); return getSponsor; } async getIsSponsor (blockHash: string, contractAddress: string, _point: number, _sponsor: number): Promise { const { isSponsor } = await this._client.query( gql(queries.isSponsor), { blockHash, contractAddress, _point, _sponsor } ); return isSponsor; } async getGetSponsoringCount (blockHash: string, contractAddress: string, _sponsor: number): Promise { const { getSponsoringCount } = await this._client.query( gql(queries.getSponsoringCount), { blockHash, contractAddress, _sponsor } ); return getSponsoringCount; } async getIsEscaping (blockHash: string, contractAddress: string, _point: number): Promise { const { isEscaping } = await this._client.query( gql(queries.isEscaping), { blockHash, contractAddress, _point } ); return isEscaping; } async getGetEscapeRequest (blockHash: string, contractAddress: string, _point: number): Promise { const { getEscapeRequest } = await this._client.query( gql(queries.getEscapeRequest), { blockHash, contractAddress, _point } ); return getEscapeRequest; } async getIsRequestingEscapeTo (blockHash: string, contractAddress: string, _point: number, _sponsor: number): Promise { const { isRequestingEscapeTo } = await this._client.query( gql(queries.isRequestingEscapeTo), { blockHash, contractAddress, _point, _sponsor } ); return isRequestingEscapeTo; } async getGetEscapeRequestsCount (blockHash: string, contractAddress: string, _sponsor: number): Promise { const { getEscapeRequestsCount } = await this._client.query( gql(queries.getEscapeRequestsCount), { blockHash, contractAddress, _sponsor } ); return getEscapeRequestsCount; } async getGetOwner (blockHash: string, contractAddress: string, _point: number): Promise { const { getOwner } = await this._client.query( gql(queries.getOwner), { blockHash, contractAddress, _point } ); return getOwner; } async getIsOwner (blockHash: string, contractAddress: string, _point: number, _address: string): Promise { const { isOwner } = await this._client.query( gql(queries.isOwner), { blockHash, contractAddress, _point, _address } ); return isOwner; } async getGetOwnedPointCount (blockHash: string, contractAddress: string, _whose: string): Promise { const { getOwnedPointCount } = await this._client.query( gql(queries.getOwnedPointCount), { blockHash, contractAddress, _whose } ); return getOwnedPointCount; } async getGetOwnedPointAtIndex (blockHash: string, contractAddress: string, _whose: string, _index: bigint): Promise { const { getOwnedPointAtIndex } = await this._client.query( gql(queries.getOwnedPointAtIndex), { blockHash, contractAddress, _whose, _index } ); return getOwnedPointAtIndex; } async getGetManagementProxy (blockHash: string, contractAddress: string, _point: number): Promise { const { getManagementProxy } = await this._client.query( gql(queries.getManagementProxy), { blockHash, contractAddress, _point } ); return getManagementProxy; } async getIsManagementProxy (blockHash: string, contractAddress: string, _point: number, _proxy: string): Promise { const { isManagementProxy } = await this._client.query( gql(queries.isManagementProxy), { blockHash, contractAddress, _point, _proxy } ); return isManagementProxy; } async getCanManage (blockHash: string, contractAddress: string, _point: number, _who: string): Promise { const { canManage } = await this._client.query( gql(queries.canManage), { blockHash, contractAddress, _point, _who } ); return canManage; } async getGetManagerForCount (blockHash: string, contractAddress: string, _proxy: string): Promise { const { getManagerForCount } = await this._client.query( gql(queries.getManagerForCount), { blockHash, contractAddress, _proxy } ); return getManagerForCount; } async getGetSpawnProxy (blockHash: string, contractAddress: string, _point: number): Promise { const { getSpawnProxy } = await this._client.query( gql(queries.getSpawnProxy), { blockHash, contractAddress, _point } ); return getSpawnProxy; } async getIsSpawnProxy (blockHash: string, contractAddress: string, _point: number, _proxy: string): Promise { const { isSpawnProxy } = await this._client.query( gql(queries.isSpawnProxy), { blockHash, contractAddress, _point, _proxy } ); return isSpawnProxy; } async getCanSpawnAs (blockHash: string, contractAddress: string, _point: number, _who: string): Promise { const { canSpawnAs } = await this._client.query( gql(queries.canSpawnAs), { blockHash, contractAddress, _point, _who } ); return canSpawnAs; } async getGetSpawningForCount (blockHash: string, contractAddress: string, _proxy: string): Promise { const { getSpawningForCount } = await this._client.query( gql(queries.getSpawningForCount), { blockHash, contractAddress, _proxy } ); return getSpawningForCount; } async getGetVotingProxy (blockHash: string, contractAddress: string, _point: number): Promise { const { getVotingProxy } = await this._client.query( gql(queries.getVotingProxy), { blockHash, contractAddress, _point } ); return getVotingProxy; } async getIsVotingProxy (blockHash: string, contractAddress: string, _point: number, _proxy: string): Promise { const { isVotingProxy } = await this._client.query( gql(queries.isVotingProxy), { blockHash, contractAddress, _point, _proxy } ); return isVotingProxy; } async getCanVoteAs (blockHash: string, contractAddress: string, _point: number, _who: string): Promise { const { canVoteAs } = await this._client.query( gql(queries.canVoteAs), { blockHash, contractAddress, _point, _who } ); return canVoteAs; } async getGetVotingForCount (blockHash: string, contractAddress: string, _proxy: string): Promise { const { getVotingForCount } = await this._client.query( gql(queries.getVotingForCount), { blockHash, contractAddress, _proxy } ); return getVotingForCount; } async getGetTransferProxy (blockHash: string, contractAddress: string, _point: number): Promise { const { getTransferProxy } = await this._client.query( gql(queries.getTransferProxy), { blockHash, contractAddress, _point } ); return getTransferProxy; } async getIsTransferProxy (blockHash: string, contractAddress: string, _point: number, _proxy: string): Promise { const { isTransferProxy } = await this._client.query( gql(queries.isTransferProxy), { blockHash, contractAddress, _point, _proxy } ); return isTransferProxy; } async getCanTransfer (blockHash: string, contractAddress: string, _point: number, _who: string): Promise { const { canTransfer } = await this._client.query( gql(queries.canTransfer), { blockHash, contractAddress, _point, _who } ); return canTransfer; } async getGetTransferringForCount (blockHash: string, contractAddress: string, _proxy: string): Promise { const { getTransferringForCount } = await this._client.query( gql(queries.getTransferringForCount), { blockHash, contractAddress, _proxy } ); return getTransferringForCount; } async getIsOperator (blockHash: string, contractAddress: string, _owner: string, _operator: string): Promise { const { isOperator } = await this._client.query( gql(queries.isOperator), { blockHash, contractAddress, _owner, _operator } ); return isOperator; } async getGetUpgradeProposalCount (blockHash: string, contractAddress: string): Promise { const { getUpgradeProposalCount } = await this._client.query( gql(queries.getUpgradeProposalCount), { blockHash, contractAddress } ); return getUpgradeProposalCount; } async getGetDocumentProposalCount (blockHash: string, contractAddress: string): Promise { const { getDocumentProposalCount } = await this._client.query( gql(queries.getDocumentProposalCount), { blockHash, contractAddress } ); return getDocumentProposalCount; } async getHasVotedOnUpgradePoll (blockHash: string, contractAddress: string, _galaxy: number, _proposal: string): Promise { const { hasVotedOnUpgradePoll } = await this._client.query( gql(queries.hasVotedOnUpgradePoll), { blockHash, contractAddress, _galaxy, _proposal } ); return hasVotedOnUpgradePoll; } async getHasVotedOnDocumentPoll (blockHash: string, contractAddress: string, _galaxy: number, _proposal: string): Promise { const { hasVotedOnDocumentPoll } = await this._client.query( gql(queries.hasVotedOnDocumentPoll), { blockHash, contractAddress, _galaxy, _proposal } ); return hasVotedOnDocumentPoll; } async getFindClaim (blockHash: string, contractAddress: string, _whose: number, _protocol: string, _claim: string): Promise { const { findClaim } = await this._client.query( gql(queries.findClaim), { blockHash, contractAddress, _whose, _protocol, _claim } ); return findClaim; } async getSupportsInterface (blockHash: string, contractAddress: string, _interfaceId: string): Promise { const { supportsInterface } = await this._client.query( gql(queries.supportsInterface), { blockHash, contractAddress, _interfaceId } ); return supportsInterface; } async getBalanceOf (blockHash: string, contractAddress: string, _owner: string): Promise { const { balanceOf } = await this._client.query( gql(queries.balanceOf), { blockHash, contractAddress, _owner } ); return balanceOf; } async getOwnerOf (blockHash: string, contractAddress: string, _tokenId: bigint): Promise { const { ownerOf } = await this._client.query( gql(queries.ownerOf), { blockHash, contractAddress, _tokenId } ); return ownerOf; } async getExists (blockHash: string, contractAddress: string, _tokenId: bigint): Promise { const { exists } = await this._client.query( gql(queries.exists), { blockHash, contractAddress, _tokenId } ); return exists; } async getGetApproved (blockHash: string, contractAddress: string, _tokenId: bigint): Promise { const { getApproved } = await this._client.query( gql(queries.getApproved), { blockHash, contractAddress, _tokenId } ); return getApproved; } async getIsApprovedForAll (blockHash: string, contractAddress: string, _owner: string, _operator: string): Promise { const { isApprovedForAll } = await this._client.query( gql(queries.isApprovedForAll), { blockHash, contractAddress, _owner, _operator } ); return isApprovedForAll; } async getTotalSupply (blockHash: string, contractAddress: string): Promise { const { totalSupply } = await this._client.query( gql(queries.totalSupply), { blockHash, contractAddress } ); return totalSupply; } async getTokenOfOwnerByIndex (blockHash: string, contractAddress: string, _owner: string, _index: bigint): Promise { const { tokenOfOwnerByIndex } = await this._client.query( gql(queries.tokenOfOwnerByIndex), { blockHash, contractAddress, _owner, _index } ); return tokenOfOwnerByIndex; } async getTokenByIndex (blockHash: string, contractAddress: string, _index: bigint): Promise { const { tokenByIndex } = await this._client.query( gql(queries.tokenByIndex), { blockHash, contractAddress, _index } ); return tokenByIndex; } async getName (blockHash: string, contractAddress: string): Promise { const { name } = await this._client.query( gql(queries.name), { blockHash, contractAddress } ); return name; } async getSymbol (blockHash: string, contractAddress: string): Promise { const { symbol } = await this._client.query( gql(queries.symbol), { blockHash, contractAddress } ); return symbol; } async getTokenURI (blockHash: string, contractAddress: string, _tokenId: bigint): Promise { const { tokenURI } = await this._client.query( gql(queries.tokenURI), { blockHash, contractAddress, _tokenId } ); return tokenURI; } async getGetSpawnLimit (blockHash: string, contractAddress: string, _point: number, _time: bigint): Promise { const { getSpawnLimit } = await this._client.query( gql(queries.getSpawnLimit), { blockHash, contractAddress, _point, _time } ); return getSpawnLimit; } async getCanEscapeTo (blockHash: string, contractAddress: string, _point: number, _sponsor: number): Promise { const { canEscapeTo } = await this._client.query( gql(queries.canEscapeTo), { blockHash, contractAddress, _point, _sponsor } ); return canEscapeTo; } async getWithdrawLimit (blockHash: string, contractAddress: string, _participant: string, _batch: number): Promise { const { withdrawLimit } = await this._client.query( gql(queries.withdrawLimit), { blockHash, contractAddress, _participant, _batch } ); return withdrawLimit; } async getVerifyBalance (blockHash: string, contractAddress: string, _participant: string): Promise { const { verifyBalance } = await this._client.query( gql(queries.verifyBalance), { blockHash, contractAddress, _participant } ); return verifyBalance; } async getGetBatch (blockHash: string, contractAddress: string, _participant: string, _batch: number): Promise { const { getBatch } = await this._client.query( gql(queries.getBatch), { blockHash, contractAddress, _participant, _batch } ); return getBatch; } async getGetWithdrawnFromBatch (blockHash: string, contractAddress: string, _participant: string, _batch: number): Promise { const { getWithdrawnFromBatch } = await this._client.query( gql(queries.getWithdrawnFromBatch), { blockHash, contractAddress, _participant, _batch } ); return getWithdrawnFromBatch; } async getHasForfeitedBatch (blockHash: string, contractAddress: string, _participant: string, _batch: number): Promise { const { hasForfeitedBatch } = await this._client.query( gql(queries.hasForfeitedBatch), { blockHash, contractAddress, _participant, _batch } ); return hasForfeitedBatch; } async getEvents (blockHash: string, contractAddress: string, name: string): Promise { const { events } = await this._client.query( gql(queries.events), { blockHash, contractAddress, name } ); return events; } async getEventsInRange (fromBlockNumber: number, toBlockNumber: number): Promise { const { eventsInRange } = await this._client.query( gql(queries.eventsInRange), { fromBlockNumber, toBlockNumber } ); return eventsInRange; } async watchContract (contractAddress: string, startingBlock?: number): Promise { const { watchContract } = await this._client.mutate( gql(mutations.watchContract), { contractAddress, startingBlock } ); return watchContract; } async watchEvents (onNext: (value: any) => void): Promise { return this._client.subscribe( gql(subscriptions.onEvent), ({ data }) => { onNext(data.onEvent); } ); } }