{"version":3,"sources":["../src/index.ts","../src/resources/prediction/index.ts","../src/abi/Prediction.ts","../src/constant.ts","../src/resources/access/registerRole.ts","../src/abi/RegisterRole.ts","../src/abi/ERC20.ts","../src/utils/thirdPartyHelper.ts","../src/types.ts"],"sourcesContent":["import InformationSDK from \"./resources/prediction/index\";\nimport { Network } from \"./types\";\n\nexport { InformationSDK, Network };\n","import { Signer, providers, Contract, BigNumber, ethers } from \"ethers\";\nimport type { PredictionCollateral } from \"../../typechain/PredictionCollateral\";\nimport { PredictionABI } from \"../../abi/Prediction\";\nimport { Network } from \"../../types\";\nimport { NATIVE_ADDRESS, PREDICTION_ADDRESS } from \"../../constant\";\nimport AdminVirtual from \"../access/registerRole\";\nimport type { EventDetail, CreatedEventOutput, PredictedEventOutput, ResolveEventOutput, RedeemEventOutput, CancelEventOutput, ConfigExpand } from \"./types\";\nimport type { RegisterOperatorOutput } from \"../access/types\";\nimport { Erc20Abi } from \"../../abi/ERC20\";\nimport type { ERC20 as ERC20Contract } from \"../../typechain/ERC20\";\nimport { getEventIdsOfCreatorFromBlock, getEventIdsOfUserPredictedFromBlock } from \"../../utils/thirdPartyHelper\";\n\nclass InformationSDK {\n\tpublic contract: PredictionCollateral;\n\n\tprivate network: Network;\n\tprivate provider: providers.Provider;\n\tprivate signer?: Signer;\n\tprivate apiKeyNetwork?: string;\n\n\tconstructor(providerOrSigner: providers.JsonRpcProvider | Signer, network: Network, config?: ConfigExpand) {\n\t\tconst provider = providerOrSigner instanceof providers.Provider ? providerOrSigner : providerOrSigner.provider;\n\t\tthis.signer = (providerOrSigner as Signer)._isSigner ? (providerOrSigner as Signer) : undefined;\n\n\t\tif (!provider) {\n\t\t\tthrow new Error(\"Either a provider or custom signer with provider must be provided\");\n\t\t}\n\n\t\tthis.provider = provider;\n\t\tthis.network = network;\n\t\tthis.apiKeyNetwork = config?.apiKeyNetWork;\n\t\tthis.contract = new Contract(PREDICTION_ADDRESS[network], PredictionABI, this.provider) as unknown as PredictionCollateral;\n\t}\n\n\t/**\n\t * @return Amount fee native coin of network,that fee creator pay when want to create event.\n\t */\n\tpublic async getEntranceFee(): Promise<number> {\n\t\tconst feeWei = await this.contract.entranceFee();\n\t\treturn +ethers.utils.formatEther(feeWei);\n\t}\n\t/**\n\t * @returns Service fee percent will pay for protocol\n\t */\n\tpublic async getServiceFeePercent(): Promise<number> {\n\t\tconst percent = await this.contract.SERVICE_FEE();\n\t\treturn +percent.toString();\n\t}\n\t/**\n\t * @returns Number events created\n\t */\n\tpublic async getTotalEvent(): Promise<number> {\n\t\tconst total = await this.contract.totalEvent();\n\t\treturn +total.toString();\n\t}\n\t/**\n\t * @abstract get all parameter of a event\n\t * @param eventId index of event, identifier for that event\n\t * @returns Detail of a event\n\t */\n\tpublic async getEventDetail(eventId: number): Promise<EventDetail> {\n\t\tconst { description, answers, creator, payment, reward, creatorFee, startTime, endTime, extraTime, outcomes } = await this.contract.eventDetail(eventId);\n\t\treturn {\n\t\t\tdescription,\n\t\t\tanswers,\n\t\t\tcreator,\n\t\t\tpayment,\n\t\t\treward,\n\t\t\tcreatorFee: +creatorFee.toString(),\n\t\t\tstartTime: +startTime.toString(),\n\t\t\tendTime: +endTime.toString(),\n\t\t\textraTime: +extraTime.toString(),\n\t\t\toutcomes: outcomes.map((o) => +o.toString()),\n\t\t};\n\t}\n\t/**\n\t * @abstract get all events of creator created\n\t * @param creatorAddress address of creator\n\t * @param apiKey api key of network, can get in scan of network\n\t * @returns array events detail\n\t */\n\tpublic async getEventsOfCreator(creatorAddress: string): Promise<Array<EventDetail>> {\n\t\tif (!this.apiKeyNetwork) throw new Error(\"Must config api key network !\");\n\n\t\tconst eventIds = await getEventIdsOfCreatorFromBlock(this.network, this.apiKeyNetwork, creatorAddress);\n\n\t\treturn Promise.all(\n\t\t\teventIds.map(async (id: number) => {\n\t\t\t\treturn await this.getEventDetail(id);\n\t\t\t})\n\t\t);\n\t}\n\t/**\n\t * @abstract get all events of user predicted\n\t * @param userAddress address of user\n\t * @param apiKey api key of network, can get in scan of network\n\t * @returns array events detail\n\t */\n\tpublic async getEventsOfUserPredicted(userAddress: string): Promise<Array<EventDetail>> {\n\t\tif (!this.apiKeyNetwork) throw new Error(\"Must config api key network !\");\n\n\t\tconst eventIds = await getEventIdsOfUserPredictedFromBlock(this.network, this.apiKeyNetwork, userAddress);\n\n\t\treturn Promise.all(\n\t\t\teventIds.map(async (id: number) => {\n\t\t\t\treturn await this.getEventDetail(id);\n\t\t\t})\n\t\t);\n\t}\n\t/**\n\t * @abstract Register permission to create event.\n\t */\n\tpublic async registerOperator(): Promise<RegisterOperatorOutput> {\n\t\tconst adminVirtual = new AdminVirtual(this._getSigner(), this.network);\n\t\treturn await adminVirtual.registerOperator();\n\t}\n\n\t/**\n\t * @abstract create a event.\n\t * @param description a question about future events\n\t * @param answers answer for question\n\t * @param payment address token using to participant predict event\n\t * @param creatorFee fee percent pay for creator event\n\t * @param startTime start time event\n\t * @param endTime end time event\n\t * @param accountAddress specific sender transaction\n\t * @returns detail of event created .\n\t */\n\tpublic async createEvent(\n\t\tdescription: string,\n\t\tanswers: Array<string>,\n\t\tpayment: string,\n\t\tcreatorFee: number,\n\t\tstartTime: number,\n\t\tendTime: number,\n\t\textraTime: number,\n\t\taccountAddress?: string\n\t): Promise<CreatedEventOutput> {\n\t\tconst signer: Signer = this._getSigner(accountAddress);\n\t\tconst entranceFee = await this.contract.entranceFee();\n\t\tconst tx = await this.contract.connect(signer).createEvent(description, answers, payment, creatorFee, startTime, endTime, extraTime, { value: entranceFee });\n\t\tconst { logs, transactionHash } = await tx.wait();\n\n\t\treturn {\n\t\t\tdescription,\n\t\t\tanswers,\n\t\t\tcreator: await signer.getAddress(),\n\t\t\tpayment,\n\t\t\tcreatorFee,\n\t\t\tstartTime,\n\t\t\tendTime,\n\t\t\textraTime,\n\t\t\ttxHash: transactionHash,\n\t\t\teventId: parseInt(logs[0]?.topics[1], 16),\n\t\t};\n\t}\n\n\t/**\n\t * @abstract predict a event existed\n\t * @param eventId index of event, identifier for that event\n\t * @param option  index of array answers. Start with zero.\n\t * @param amount  amount token use to predict event\n\t * @param accountAddress specific sender transaction\n\t * @returns detail parameter predicted\n\t */\n\tpublic async predictEvent(eventId: number, option: number, amount: number, accountAddress?: string): Promise<PredictedEventOutput> {\n\t\tconst signer: Signer = this._getSigner(accountAddress);\n\t\tconst event: EventDetail = await this.getEventDetail(eventId);\n\t\tconst amountWei: BigNumber = await this._parseAmountToWei(event.payment, amount);\n\t\tlet dataTx;\n\t\tif (event.payment === NATIVE_ADDRESS) {\n\t\t\tlet tx = await this.contract.connect(signer).predictEvent(eventId, option, 0, { value: amountWei });\n\t\t\tdataTx = await tx.wait();\n\t\t} else {\n\t\t\tlet tx = await this.contract.connect(signer).predictEvent(eventId, option, amountWei, { value: 0 });\n\t\t\tdataTx = await tx.wait();\n\t\t}\n\t\tconst { transactionHash } = dataTx;\n\t\treturn {\n\t\t\tpredictor: await signer.getAddress(),\n\t\t\teventId,\n\t\t\toption,\n\t\t\tamount: amountWei,\n\t\t\ttxHash: transactionHash,\n\t\t};\n\t}\n\t/**\n\t * @abstract creator set result of event\n\t * @param eventId index of event, identifier for that event\n\t * @param outcomes  array percent of options\n\t * @param accountAddress specific sender transaction\n\t * @returns detail parameter resolved\n\t */\n\tpublic async resolveEvent(eventId: number, outcomes: Array<number>, accountAddress?: string): Promise<ResolveEventOutput> {\n\t\tconst signer: Signer = this._getSigner(accountAddress);\n\t\tconst tx = await this.contract.connect(signer).resolveEvent(\n\t\t\teventId,\n\t\t\toutcomes.map((o) => o * 100)\n\t\t);\n\t\tconst { transactionHash } = await tx.wait();\n\t\treturn {\n\t\t\tcreator: await signer.getAddress(),\n\t\t\teventId,\n\t\t\toutcomes,\n\t\t\ttxHash: transactionHash,\n\t\t};\n\t}\n\t/**\n\t * @abstract user predicted will call to redeem reward if winner\n\t * @param eventId index of event, identifier for that event\n\t * @param option  option user predicted\n\t * @param amount amount user want redeem\n\t * @param accountAddress specific sender transaction\n\t * @returns detail parameter redeem\n\t */\n\tpublic async redeemEvent(eventId: number, option: number, amount: number, accountAddress?: string): Promise<RedeemEventOutput> {\n\t\tconst signer: Signer = this._getSigner(accountAddress);\n\t\tconst event: EventDetail = await this.getEventDetail(eventId);\n\t\tconst amountWei: BigNumber = await this._parseAmountToWei(event.payment, amount);\n\t\tconst tx = await this.contract.connect(signer).redeemEvent(eventId, option, amountWei);\n\n\t\tconst { transactionHash } = await tx.wait();\n\t\treturn {\n\t\t\tpredictor: await signer.getAddress(),\n\t\t\teventId,\n\t\t\toption,\n\t\t\tamount: amountWei,\n\t\t\ttxHash: transactionHash,\n\t\t};\n\t}\n\n\t/**\n\t * @abstract creator can cancel event if event not started yet\n\t * @param eventId index of event, identifier for that event\n\t * @param accountAddress specific sender transaction\n\t * @returns detail parameter cancel\n\t */\n\tpublic async cancelEvent(eventId: number, accountAddress?: string): Promise<CancelEventOutput> {\n\t\tconst signer: Signer = this._getSigner(accountAddress);\n\t\tconst tx = await this.contract.connect(signer).cancelEvent(eventId);\n\t\tconst { transactionHash } = await tx.wait();\n\n\t\treturn {\n\t\t\tcreator: await signer.getAddress(),\n\t\t\teventId,\n\t\t\ttxHash: transactionHash,\n\t\t};\n\t}\n\n\t/**\n\t * @abstract only admin can change entrance fee\n\t * @param amount new amount entrance fee\n\t */\n\tpublic async updateEntranceFee(amount: BigNumber, accountAddress?: string): Promise<string> {\n\t\tconst signer: Signer = this._getSigner(accountAddress);\n\t\tconst tx = await this.contract.connect(signer).updateEntranceFee(amount);\n\t\tconst { transactionHash } = await tx.wait();\n\t\treturn transactionHash;\n\t}\n\n\tpublic getSigner(accountAddress?: string): Signer {\n\t\tif (this.signer) {\n\t\t\treturn this.signer;\n\t\t}\n\n\t\tif (!(this.provider instanceof providers.JsonRpcProvider)) {\n\t\t\tthrow new Error(\"Either signer or a JsonRpcProvider must be provided\");\n\t\t}\n\n\t\treturn this.provider.getSigner(accountAddress);\n\t}\n\n\tprivate _getSigner(accountAddress?: string): Signer {\n\t\tif (this.signer) {\n\t\t\treturn this.signer;\n\t\t}\n\n\t\tif (!(this.provider instanceof providers.JsonRpcProvider)) {\n\t\t\tthrow new Error(\"Either signer or a JsonRpcProvider must be provided\");\n\t\t}\n\n\t\treturn this.provider.getSigner(accountAddress);\n\t}\n\n\tprivate async _parseAmountToWei(addressToken: string, amount: number): Promise<BigNumber> {\n\t\tif (addressToken === NATIVE_ADDRESS) {\n\t\t\treturn ethers.utils.parseUnits(amount.toString(), 18);\n\t\t} else {\n\t\t\tconst token = new Contract(addressToken, Erc20Abi, this.provider) as unknown as ERC20Contract;\n\t\t\tlet decimal = await token.decimals();\n\t\t\treturn ethers.utils.parseUnits(amount.toString(), decimal);\n\t\t}\n\t}\n}\n\nexport default InformationSDK;\n","export const PredictionABI = [\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"address\", name: \"_proofToken\", type: \"address\" },\n\t\t\t{ internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n\t\t\t{ internalType: \"address\", name: \"_accessControl\", type: \"address\" },\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"constructor\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, internalType: \"uint256\", name: \"eventId\", type: \"uint256\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n\t\t],\n\t\tname: \"AdditionalRewardEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, internalType: \"address\", name: \"creator\", type: \"address\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"eventId\", type: \"uint256\" },\n\t\t],\n\t\tname: \"CancelEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, internalType: \"uint256\", name: \"eventId\", type: \"uint256\" },\n\t\t\t{ indexed: true, internalType: \"address\", name: \"creator\", type: \"address\" },\n\t\t\t{ indexed: false, internalType: \"string\", name: \"description\", type: \"string\" },\n\t\t\t{ indexed: false, internalType: \"string[]\", name: \"_answers\", type: \"string[]\" },\n\t\t\t{ indexed: false, internalType: \"address\", name: \"payment\", type: \"address\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"creatorFee\", type: \"uint256\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"startTime\", type: \"uint256\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"endTime\", type: \"uint256\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"extraTime\", type: \"uint256\" },\n\t\t],\n\t\tname: \"CreatedEvent\",\n\t\ttype: \"event\",\n\t},\n\t{ anonymous: false, inputs: [{ indexed: false, internalType: \"address\", name: \"account\", type: \"address\" }], name: \"Paused\", type: \"event\" },\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, internalType: \"address\", name: \"predictor\", type: \"address\" },\n\t\t\t{ indexed: true, internalType: \"uint256\", name: \"eventId\", type: \"uint256\" },\n\t\t\t{ indexed: true, internalType: \"uint256\", name: \"option\", type: \"uint256\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n\t\t],\n\t\tname: \"PredictedEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, internalType: \"address\", name: \"predictor\", type: \"address\" },\n\t\t\t{ indexed: true, internalType: \"uint256\", name: \"eventId\", type: \"uint256\" },\n\t\t\t{ indexed: true, internalType: \"uint256\", name: \"option\", type: \"uint256\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"reward\", type: \"uint256\" },\n\t\t],\n\t\tname: \"RedeemEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, internalType: \"uint256\", name: \"eventId\", type: \"uint256\" },\n\t\t\t{ indexed: false, internalType: \"address\", name: \"creator\", type: \"address\" },\n\t\t\t{ indexed: false, internalType: \"uint256[]\", name: \"outcomes\", type: \"uint256[]\" },\n\t\t\t{ indexed: false, internalType: \"uint256\", name: \"creatorFee\", type: \"uint256\" },\n\t\t],\n\t\tname: \"ResolvedEvent\",\n\t\ttype: \"event\",\n\t},\n\t{ anonymous: false, inputs: [{ indexed: false, internalType: \"address\", name: \"account\", type: \"address\" }], name: \"Unpaused\", type: \"event\" },\n\t{ inputs: [], name: \"INVERSE_BASIS_POINT\", outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }], stateMutability: \"view\", type: \"function\" },\n\t{ inputs: [], name: \"MAX_CREATOR_FEE\", outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }], stateMutability: \"view\", type: \"function\" },\n\t{ inputs: [], name: \"SERVICE_FEE\", outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }], stateMutability: \"view\", type: \"function\" },\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"uint256\", name: \"_eventId\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_amount\", type: \"uint256\" },\n\t\t],\n\t\tname: \"additionalRewardEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{ inputs: [{ internalType: \"uint256\", name: \"_eventId\", type: \"uint256\" }], name: \"cancelEvent\", outputs: [], stateMutability: \"nonpayable\", type: \"function\" },\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"string\", name: \"_description\", type: \"string\" },\n\t\t\t{ internalType: \"string[]\", name: \"_answers\", type: \"string[]\" },\n\t\t\t{ internalType: \"address\", name: \"_payment\", type: \"address\" },\n\t\t\t{ internalType: \"uint256\", name: \"_creatorFee\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_startTime\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_endTime\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_extraTime\", type: \"uint256\" },\n\t\t],\n\t\tname: \"createEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"payable\",\n\t\ttype: \"function\",\n\t},\n\t{ inputs: [], name: \"entranceFee\", outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }], stateMutability: \"view\", type: \"function\" },\n\t{\n\t\tinputs: [{ internalType: \"uint256\", name: \"_eventId\", type: \"uint256\" }],\n\t\tname: \"eventDetail\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ internalType: \"string\", name: \"description\", type: \"string\" },\n\t\t\t\t\t{ internalType: \"string[]\", name: \"answers\", type: \"string[]\" },\n\t\t\t\t\t{ internalType: \"address\", name: \"creator\", type: \"address\" },\n\t\t\t\t\t{ internalType: \"address\", name: \"payment\", type: \"address\" },\n\t\t\t\t\t{ internalType: \"uint256\", name: \"reward\", type: \"uint256\" },\n\t\t\t\t\t{ internalType: \"uint256\", name: \"creatorFee\", type: \"uint256\" },\n\t\t\t\t\t{ internalType: \"uint256\", name: \"startTime\", type: \"uint256\" },\n\t\t\t\t\t{ internalType: \"uint256\", name: \"endTime\", type: \"uint256\" },\n\t\t\t\t\t{ internalType: \"uint256\", name: \"extraTime\", type: \"uint256\" },\n\t\t\t\t\t{ internalType: \"uint256[]\", name: \"outcomes\", type: \"uint256[]\" },\n\t\t\t\t],\n\t\t\t\tinternalType: \"struct PredictionCollateral.Event\",\n\t\t\t\tname: \"_event\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n\t\tname: \"extraReward\",\n\t\toutputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{ inputs: [], name: \"feeRecipient\", outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }], stateMutability: \"view\", type: \"function\" },\n\t{ inputs: [], name: \"metaspacecyAccessControls\", outputs: [{ internalType: \"contract MetaspacecyAccessControls\", name: \"\", type: \"address\" }], stateMutability: \"view\", type: \"function\" },\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"address\", name: \"\", type: \"address\" },\n\t\t\t{ internalType: \"address\", name: \"\", type: \"address\" },\n\t\t\t{ internalType: \"uint256[]\", name: \"\", type: \"uint256[]\" },\n\t\t\t{ internalType: \"uint256[]\", name: \"\", type: \"uint256[]\" },\n\t\t\t{ internalType: \"bytes\", name: \"\", type: \"bytes\" },\n\t\t],\n\t\tname: \"onERC1155BatchReceived\",\n\t\toutputs: [{ internalType: \"bytes4\", name: \"\", type: \"bytes4\" }],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"address\", name: \"\", type: \"address\" },\n\t\t\t{ internalType: \"address\", name: \"\", type: \"address\" },\n\t\t\t{ internalType: \"uint256\", name: \"\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"\", type: \"uint256\" },\n\t\t\t{ internalType: \"bytes\", name: \"\", type: \"bytes\" },\n\t\t],\n\t\tname: \"onERC1155Received\",\n\t\toutputs: [{ internalType: \"bytes4\", name: \"\", type: \"bytes4\" }],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{ inputs: [], name: \"pause\", outputs: [], stateMutability: \"nonpayable\", type: \"function\" },\n\t{ inputs: [], name: \"paused\", outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }], stateMutability: \"view\", type: \"function\" },\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"uint256\", name: \"_eventId\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_option\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_amount\", type: \"uint256\" },\n\t\t],\n\t\tname: \"predictEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"payable\",\n\t\ttype: \"function\",\n\t},\n\t{ inputs: [], name: \"proofTokens\", outputs: [{ internalType: \"contract IProofTokens\", name: \"\", type: \"address\" }], stateMutability: \"view\", type: \"function\" },\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"uint256\", name: \"_eventId\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_option\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_amount\", type: \"uint256\" },\n\t\t],\n\t\tname: \"redeemEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"uint256\", name: \"_eventId\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256[]\", name: \"_outcomes\", type: \"uint256[]\" },\n\t\t],\n\t\tname: \"resolveEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [{ internalType: \"bytes4\", name: \"interfaceId\", type: \"bytes4\" }],\n\t\tname: \"supportsInterface\",\n\t\toutputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{ inputs: [], name: \"totalEvent\", outputs: [{ internalType: \"uint256\", name: \"total\", type: \"uint256\" }], stateMutability: \"view\", type: \"function\" },\n\t{ inputs: [], name: \"unpause\", outputs: [], stateMutability: \"nonpayable\", type: \"function\" },\n\t{ inputs: [{ internalType: \"uint256\", name: \"_amount\", type: \"uint256\" }], name: \"updateEntranceFee\", outputs: [], stateMutability: \"nonpayable\", type: \"function\" },\n\t{ inputs: [{ internalType: \"address\", name: \"_recepient\", type: \"address\" }], name: \"updateFeeRecipient\", outputs: [], stateMutability: \"nonpayable\", type: \"function\" },\n];\n\nexport const PredictionAbi = [\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"AdditionalRewardEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"creator\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"CancelEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"creator\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"string\",\n\t\t\t\tname: \"description\",\n\t\t\t\ttype: \"string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"string[]\",\n\t\t\t\tname: \"_options\",\n\t\t\t\ttype: \"string[]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"paymentToken\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"creatorFee\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"startTime\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"endTime\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"payoutTime\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"CreatedEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"account\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tname: \"Paused\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"predictor\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"option\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"PredictedEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"predictor\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"option\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"reward\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"RedeemEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"creator\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256[]\",\n\t\t\t\tname: \"outcomes\",\n\t\t\t\ttype: \"uint256[]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"creatorFee\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"ResolvedEvent\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"account\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tname: \"Unpaused\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"INVERSE_BASIS_POINT\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"MAX_CREATOR_FEE\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"SERVICE_FEE\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"additionalRewardEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"cancelEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"conditionalToken\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"contract IConditionalToken\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bytes\",\n\t\t\t\tname: \"data\",\n\t\t\t\ttype: \"bytes\",\n\t\t\t},\n\t\t],\n\t\tname: \"createEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"eventDetail\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tcomponents: [\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"string\",\n\t\t\t\t\t\tname: \"description\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"string[]\",\n\t\t\t\t\t\tname: \"options\",\n\t\t\t\t\t\ttype: \"string[]\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"address\",\n\t\t\t\t\t\tname: \"creator\",\n\t\t\t\t\t\ttype: \"address\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"address\",\n\t\t\t\t\t\tname: \"paymentToken\",\n\t\t\t\t\t\ttype: \"address\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\tname: \"reward\",\n\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\tname: \"creatorFee\",\n\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\tname: \"startTime\",\n\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\tname: \"endTime\",\n\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\tname: \"payoutTime\",\n\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256[]\",\n\t\t\t\t\t\tname: \"outcomes\",\n\t\t\t\t\t\ttype: \"uint256[]\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinternalType: \"struct Prediction.Event\",\n\t\t\t\tname: \"_event\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tname: \"extraReward\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"informationMarket\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"contract IInformationMarket\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"_informationMarket\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"_conditionalToken\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"_accessControl\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tname: \"initialize\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"metaspacecyAccessControls\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"contract MetaspacecyAccessControls\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256[]\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256[]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256[]\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256[]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"bytes\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bytes\",\n\t\t\t},\n\t\t],\n\t\tname: \"onERC1155BatchReceived\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bytes4\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bytes4\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"bytes\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bytes\",\n\t\t\t},\n\t\t],\n\t\tname: \"onERC1155Received\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bytes4\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bytes4\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"paused\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_option\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"predictEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"payable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_option\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"redeemEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"_eventId\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256[]\",\n\t\t\t\tname: \"_outcomes\",\n\t\t\t\ttype: \"uint256[]\",\n\t\t\t},\n\t\t],\n\t\tname: \"resolveEvent\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bytes4\",\n\t\t\t\tname: \"interfaceId\",\n\t\t\t\ttype: \"bytes4\",\n\t\t\t},\n\t\t],\n\t\tname: \"supportsInterface\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"totalEvent\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"total\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"typeId\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n];\n","export const PREDICTION_ADDRESS: { [key: number]: string } = {\n\t97: \"0x6Dd2B1Aff0f99aB4C29087B89bF8500085b2E272\",\n\t56: \"\",\n};\n\nexport const ADMIN_VIRTUAL_ADDRESS: { [key: number]: string } = {\n\t97: \"0x519A2c0b94eF27024dC4c0B6f9B0e3A14edDaB26\",\n\t56: \"\",\n};\n\nexport const NATIVE_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n\nexport const ENDPOINT_API: { [key: number]: string } = {\n\t97: \"https://api-testnet.bscscan.com\",\n\t56: \"https://api.bscscan.com\",\n};\n","import { Contract, Signer } from \"ethers\";\nimport { RegisterAbi } from \"../../abi/RegisterRole\";\nimport { ADMIN_VIRTUAL_ADDRESS } from \"../../constant\";\nimport { Network } from \"../../types\";\nimport { RegisterRole as RegisterRoleType } from \"../../typechain/RegisterRole\";\nimport type { RegisterOperatorOutput } from \"./types\";\n\nexport default class RegisterRole {\n\tpublic contract: RegisterRoleType;\n\n\tconstructor(signer: Signer, network: Network) {\n\t\tthis.contract = new Contract(ADMIN_VIRTUAL_ADDRESS[network], RegisterAbi, signer) as unknown as RegisterRoleType;\n\t}\n\n\tpublic async registerOperator(): Promise<RegisterOperatorOutput> {\n\t\tconst tx = await this.contract.registerOperator();\n\t\tconst { from, transactionHash } = await tx.wait();\n\t\treturn {\n\t\t\toperator: from,\n\t\t\ttxHash: transactionHash,\n\t\t};\n\t}\n}\n","export const RegisterAbi = [\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"accessControl\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"constructor\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"addr\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tname: \"hasOperator\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"isOperator\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"metaspacecyAccessControls\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"contract MetaspacecyAccessControls\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"registerOperator\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n];\n","export const Erc20Abi = [\n\t{\n\t\tinputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"constructor\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"owner\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"spender\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"value\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"Approval\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"from\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"to\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"value\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"Transfer\",\n\t\ttype: \"event\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"owner\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"spender\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tname: \"allowance\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"spender\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"approve\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"account\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t],\n\t\tname: \"balanceOf\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"decimals\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint8\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint8\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"pure\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"spender\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"subtractedValue\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"decreaseAllowance\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"spender\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"addedValue\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"increaseAllowance\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"to\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"mint\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"name\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"string\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"string\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"symbol\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"string\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"string\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [],\n\t\tname: \"totalSupply\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"recipient\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"transfer\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"sender\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"address\",\n\t\t\t\tname: \"recipient\",\n\t\t\t\ttype: \"address\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"amount\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tname: \"transferFrom\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n];\n","import { Network } from \"../types\";\nimport axios from \"axios\";\nimport { ENDPOINT_API, PREDICTION_ADDRESS } from \"../constant\";\nimport { ethers } from \"ethers\";\nimport { PredictionABI } from \"../abi/Prediction\";\n\nexport const getEventIdsOfCreatorFromBlock = async (network: Network, apiKey: string, creatorAddress: string): Promise<Array<number>> => {\n\t// get data from block\n\tconst { data } = await axios({\n\t\tmethod: \"get\",\n\t\turl: `${ENDPOINT_API[network]}/api?module=logs&action=getLogs&address=${PREDICTION_ADDRESS[network]}&topic2=0x000000000000000000000000${creatorAddress.slice(2)}&apikey=${apiKey}`,\n\t});\n\t// format data\n\tconst iface = new ethers.utils.Interface(PredictionABI);\n\tconst eventsOfCreator = data?.result?.map((e: any) => iface.decodeEventLog(\"CreatedEvent\", e.data, e.topics));\n\treturn eventsOfCreator?.map((e: any) => {\n\t\tlet { eventId } = e;\n\t\treturn +eventId.toString();\n\t});\n};\n\nexport const getEventIdsOfUserPredictedFromBlock = async (network: Network, apiKey: string, userAddress: string): Promise<Array<number>> => {\n\tconst iface = new ethers.utils.Interface(PredictionABI);\n\t// get data from block\n\tconst { data } = await axios({\n\t\tmethod: \"get\",\n\t\turl: `${ENDPOINT_API[network]}/api?module=logs&action=getLogs&address=${PREDICTION_ADDRESS[network]}&topic0=${iface.getEventTopic(\n\t\t\t\"PredictedEvent\"\n\t\t)}&topic0_1_opr=and&topic1=0x000000000000000000000000${userAddress.slice(2)}&apikey=${apiKey}`,\n\t});\n\t// format data\n\tconst eventsOfUserPredicted = data?.result?.map((e: any) => iface.decodeEventLog(\"PredictedEvent\", e.data, e.topics));\n\tlet eventIds = eventsOfUserPredicted?.map((e: any) => {\n\t\tlet { eventId } = e;\n\t\treturn +eventId.toString();\n\t});\n\teventIds = new Set(eventIds);\n\treturn Array.from(eventIds);\n};\n","export enum Network {\n\tbnbTestnet = 97,\n\tbnbMainnet = 56,\n}\n"],"mappings":"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","names":["import_ethers","import_ethers","axios","Network"]}