{"version":3,"sources":["../src/index.ts","../src/constants.ts","../src/accessControl.ts","../src/getResource.ts","../src/utils.ts","../src/services.ts","../src/information.ts"],"sourcesContent":["import {\n  AptosAccount,\n  AptosClient,\n  HexString,\n  TransactionBuilderRemoteABI,\n  Types,\n} from \"aptos\";\nimport _, { isString } from \"lodash\";\nimport { getMemberRole } from \"./accessControl\";\nimport * as getResource from \"./getResource\";\nimport * as services from \"./services\";\nimport {\n  cancelPredictEvent,\n  cancelSurveyEvent,\n  cancelSurveyNFTEvent,\n  createPredictEvent,\n  createSurveyEvent,\n  createSurveyNFTEvent,\n  finalizePredictEvent,\n  finalizeSurveyEvent,\n  finalizeSurveyNFtEvent,\n  predictEvent,\n  redeemPredictEvent,\n  redeemSurveyEvent,\n  redeemSurveyNFTEvent,\n  surveyEvent,\n  surveyNFTEvent,\n} from \"./information\";\nimport { IChainID } from \"./types\";\nimport * as Constants from \"./constants\";\n\nexport default class InformationSDK {\n  private chainID: IChainID[\"value\"];\n\n  private privateKey?: HexString;\n\n  private responseField?: string[];\n\n  private signAndSubmitTransactionCallback?: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>;\n\n  // ChainID of the network used by the user\n  // responseField is an array of values that the user wants to return after using the signAndSubmitTransaction function\n  // example [\"hash\"] => result {hash: ...}\n  // callBack: is signAndSubmitTransaction function of wallet adapter\n  // if you don't have wallet adapter you can use private key\n  constructor(\n    chainID: IChainID[\"value\"],\n    callBack?:\n      | ((transaction: Types.TransactionPayload, options?: any) => Promise<any>)\n      | string,\n    responseField?: string[]\n  ) {\n    if (isString(callBack)) {\n      this.privateKey = new HexString(callBack);\n    } else {\n      this.signAndSubmitTransactionCallback = callBack;\n    }\n\n    this.chainID = chainID;\n    this.responseField = responseField;\n  }\n\n  signAndSubmitTransaction = async (\n    transaction: any,\n    options?: any\n  ): Promise<any> => {\n    let result;\n    if (this.privateKey) {\n      const aptosClient = new AptosClient(\n        Constants.APTOS_NODE_URL[this.chainID]\n      );\n\n      const sender = new AptosAccount(this.privateKey.toUint8Array());\n      const builder = new TransactionBuilderRemoteABI(aptosClient, {\n        sender: sender.address(),\n        ...options,\n      });\n      const rawTxn = await builder.build(\n        transaction.function,\n        transaction.type_arguments,\n        transaction.arguments\n      );\n      const sign = await aptosClient.signTransaction(sender, rawTxn);\n      result = await aptosClient.submitTransaction(sign);\n    } else if (this.signAndSubmitTransactionCallback) {\n      result = await this.signAndSubmitTransactionCallback(\n        transaction,\n        options\n      );\n    }\n    if (this.responseField) {\n      return _.reduce(\n        result,\n        (_result: any, value: any, key: string) => {\n          if (this.responseField?.includes(key)) {\n            return {\n              ..._result,\n              [key]: value,\n            };\n          }\n          return _result;\n        },\n        {}\n      );\n    }\n    return result;\n  };\n\n  async getOperatorRole(): Promise<any> {\n    return getMemberRole(this.signAndSubmitTransaction, this.chainID);\n  }\n\n  // description: The event description has a data type of string.\n  // uri: The event media\n  // options: The event options has a data type of array.\n  // startTime: The event start time\n  // endTime: The event end time\n  // payoutTime: The redemption time for users after the event ends\n  // coinType: The event coin type\n  async createPredictEvent(\n    description: string,\n    uri: string,\n    options: string[],\n    start_time: number,\n    end_time: number,\n    payout_time: number,\n    type_arguments: string\n  ): Promise<any> {\n    return createPredictEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      uri,\n      options,\n      start_time,\n      end_time,\n      payout_time,\n      type_arguments\n    );\n  }\n\n  // description: The event description has a data type of string.\n  // uri: The event media\n  // reward: The event reward\n  // options: The event options has a data type of array.\n  // startTime: The event start time\n  // endTime: The event end time\n  // payoutTime: The redemption time for users after the event ends\n  // coinType: The event coin type\n  async createSuyveyEvent(\n    description: string,\n    uri: string,\n    reward: number,\n    options: string[],\n    start_time: number,\n    end_time: number,\n    payout_time: number,\n    type_arguments: string\n  ): Promise<any> {\n    return createSurveyEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      uri,\n      reward,\n      options,\n      start_time,\n      end_time,\n      payout_time,\n      type_arguments\n    );\n  }\n\n  // description: The event description has a data type of string.\n  // collection: The event collection name\n  // uri: The event media\n  // options: The event options has a data type of array.\n  // startTime: The event start time\n  // endTime: The event end time\n  // payoutTime: The redemption time for users after the event ends\n  // coinType: The event coin type\n  async createSuyveyNFTEvent(\n    description: string,\n    collection: string,\n    uri: string,\n    options: string[],\n    start_time: number,\n    end_time: number,\n    payout_time: number\n  ): Promise<any> {\n    return createSurveyNFTEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      collection,\n      uri,\n      options,\n      start_time,\n      end_time,\n      payout_time\n    );\n  }\n\n  // option: your option\n  // amount: Number of options\n  async predictEvent(\n    option: string,\n    amount: number,\n    event_creator: HexString,\n    event_description: String,\n    event_options: string[],\n    type_arguments: string\n  ): Promise<any> {\n    return predictEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      option,\n      amount,\n      event_creator,\n      event_description,\n      event_options,\n      type_arguments\n    );\n  }\n\n  // option: your option\n  async surveyEvent(\n    option: string,\n    event_creator: HexString,\n    event_description: String,\n    event_options: string[],\n    type_arguments: string\n  ): Promise<any> {\n    return surveyEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      option,\n      event_creator,\n      event_description,\n      event_options,\n      type_arguments\n    );\n  }\n\n  // option: your option\n  // amount: Number of options\n  // token_creator: token creator\n  // collection: token collection\n  // token_name: token name\n  // token_version: token properties version\n  async surveyNFTEvent(\n    option: string,\n    amount: number,\n    event_creator: HexString,\n    event_description: String,\n    event_options: string[],\n    token_creator: HexString,\n    collection: string,\n    token_name: string,\n    token_version: number\n  ): Promise<any> {\n    return surveyNFTEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      option,\n      amount,\n      event_creator,\n      event_description,\n      event_options,\n      token_creator,\n      collection,\n      token_name,\n      token_version\n    );\n  }\n\n  // The length of outcomes must be equal to the length of options.\n  // outcomes is an array of numbers\n  // outcomes is the event result\n  async finalizePredictEvent(\n    description: string,\n    options: string[],\n    outcomes: number[],\n    type_arguments: string\n  ): Promise<any> {\n    return finalizePredictEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      options,\n      outcomes,\n      type_arguments\n    );\n  }\n\n  // The length of outcomes must be equal to the length of options.\n  // outcomes is an array of numbers\n  // outcomes is the event result\n  async finalizeSurveyEvent(\n    description: string,\n    options: string[],\n    outcomes: number[],\n    type_arguments: string\n  ): Promise<any> {\n    return finalizeSurveyEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      options,\n      outcomes,\n      type_arguments\n    );\n  }\n\n  // The length of outcomes must be equal to the length of options.\n  // outcomes is an array of numbers\n  // outcomes is the event result\n  async finalizeSurveyNFTEvent(\n    description: string,\n    options: string[],\n    outcomes: number[]\n  ): Promise<any> {\n    return finalizeSurveyNFtEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      options,\n      outcomes\n    );\n  }\n\n  // name is the name of the token that users receive when they make a prediction\n  async redeemPredictEvent(\n    name: string,\n    amount: number,\n    type_arguments: string\n  ): Promise<any> {\n    return redeemPredictEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      name,\n      amount,\n      type_arguments\n    );\n  }\n\n  // name is the name of the token that users receive when they make a prediction\n  async redeemSurveyEvent(name: string, type_arguments: string): Promise<any> {\n    return redeemSurveyEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      name,\n      type_arguments\n    );\n  }\n\n  // name is the name of the token that users receive when they make a prediction\n  async redeemSurveyNFTEvent(name: string, amount: number): Promise<any> {\n    return redeemSurveyNFTEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      name,\n      amount\n    );\n  }\n\n  async cancelPredictEvent(\n    description: string,\n    options: string[],\n    type_arguments: string\n  ): Promise<any> {\n    return cancelPredictEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      options,\n      type_arguments\n    );\n  }\n\n  async cancelSurveyEvent(\n    description: string,\n    options: string[],\n    type_arguments: string\n  ): Promise<any> {\n    return cancelSurveyEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      options,\n      type_arguments\n    );\n  }\n\n  async cancelSurveyNFTEvent(\n    description: string,\n    options: string[]\n  ): Promise<any> {\n    return cancelSurveyNFTEvent(\n      this.signAndSubmitTransaction,\n      this.chainID,\n      description,\n      options\n    );\n  }\n}\nexport { getResource, Constants, services };\n","export const MODULE_ADDRESS = {\n  1: \"0x98d807bee3b8a28feb99c87712787ad1608c5e31cd6770669e39dcb8a3ae6b0d\",\n  2: \"0x98d807bee3b8a28feb99c87712787ad1608c5e31cd6770669e39dcb8a3ae6b0d\",\n  41: \"0x98d807bee3b8a28feb99c87712787ad1608c5e31cd6770669e39dcb8a3ae6b0d\",\n};\nexport const RESOURCE_ADDRESS = {\n  1: \"0x79bf4ba0dd0e0369dd15644192e8264db9f863a03b299cd85a5367b8d214c231\",\n  2: \"0x79bf4ba0dd0e0369dd15644192e8264db9f863a03b299cd85a5367b8d214c231\",\n  41: \"0x79bf4ba0dd0e0369dd15644192e8264db9f863a03b299cd85a5367b8d214c231\",\n};\nexport const APTOS_NODE_URL = {\n  1: \"https://fullnode.mainnet.aptoslabs.com/v1\",\n  2: \"https://fullnode.testnet.aptoslabs.com/v1\",\n  41: \"https://fullnode.devnet.aptoslabs.com/v1\",\n}\nexport const COLLECTION = {\n  1: \"Metaspacecy Conditional Token Test\",\n  2: \"Metaspacecy Conditional Token Test\",\n  41: \"Metaspacecy Conditional Token Test\"\n}\n\nexport const GraphQLEndpoint = {\n  1: \"https://indexer.mainnet.aptoslabs.com/v1/graphql\",\n  2: \"https://indexer-testnet.staging.gcp.aptosdev.com/v1/graphql\",\n  41: \"https://indexer-devnet.staging.gcp.aptosdev.com/v1/graphql\",\n};\n\nexport const ACCESS_CONTROL_MODULE = \"access_control\";\nexport const SECONDARY_ACCESS_CONTROL_MODULE = \"secondary_access_control\";\n\nexport const INFORMATION_MODULE = \"information_factory\";\nexport const INFORMATION_DATA_MODULE = \"information_data_factory\";\nexport const PREDICT_MODULE = \"prediction\";\nexport const SURVEY_MODULE = \"survey\";\nexport const SURVEY_NFT_MODULE = \"survey_nft\";\n\nexport const DEFAULT_COIN_TYPE = \"0x1::aptos_coin::AptosCoin\";\n\nexport const CONITIONAL_TOKEN = \"conditional_token\";\n","// import { AptosClient } from \"aptos\"\nimport { Types } from \"aptos\";\nimport { MODULE_ADDRESS, SECONDARY_ACCESS_CONTROL_MODULE } from \"./constants\";\nimport { IChainID } from \"./types\";\n\nconst getMemberRole = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainId: IChainID[\"value\"]\n) => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainId]}::${SECONDARY_ACCESS_CONTROL_MODULE}::get_role`,\n    type_arguments: [],\n    arguments: [],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nexport { getMemberRole };\n","import { AptosClient, HexString, TokenClient } from \"aptos\";\nimport {\n  APTOS_NODE_URL,\n  COLLECTION,\n  DEFAULT_COIN_TYPE,\n  INFORMATION_DATA_MODULE,\n  INFORMATION_MODULE,\n  MODULE_ADDRESS,\n  PREDICT_MODULE,\n  RESOURCE_ADDRESS,\n  SURVEY_MODULE,\n  SURVEY_NFT_MODULE,\n} from \"./constants\";\nimport { IChainID } from \"./types\";\nimport { getOptionHashValue } from \"./utils\";\n\n// creator : the event creator\n// description: The event description has a data type of string.\n// options: The event options has a data type of array.\n// chainId: The network chainId\n// coinType: The event coin type\nexport const getPredictEventByEventID = async (\n  creator: HexString,\n  description: string,\n  options: string[],\n  chainId: IChainID[\"value\"],\n  coinType: string = DEFAULT_COIN_TYPE\n) => {\n  const client = new AptosClient(APTOS_NODE_URL[chainId]);\n  const { data }: any = await client.getAccountResource(\n    MODULE_ADDRESS[chainId],\n    `${MODULE_ADDRESS[chainId]}::${PREDICT_MODULE}::Prediction<${coinType}>`\n  );\n  const { handle } = data.all_events;\n\n  try {\n    const dataPredict = await client.getTableItem(handle, {\n      key_type: `${MODULE_ADDRESS[chainId]}::${INFORMATION_DATA_MODULE}::EventID`,\n      value_type: `${MODULE_ADDRESS[chainId]}::${PREDICT_MODULE}::Event<${coinType}>`,\n      key: {\n        creator,\n        description:\n          options.length !== 0\n            ? `${description}?#(${coinType})?#${getOptionHashValue(options)}`\n            : description,\n      },\n    });\n    return dataPredict;\n  } catch (error: any) {\n    return error;\n  }\n};\n\n// creator : the event creator\n// description: The event description has a data type of string.\n// options: The event options has a data type of array.\n// chainId: The network chainId\n// coinType: The event coin type\nexport const getSurveyEventByEventID = async (\n  creator: HexString,\n  description: string,\n  options: string[],\n  chainId: IChainID[\"value\"],\n  coinType: string = DEFAULT_COIN_TYPE\n) => {\n  const client = new AptosClient(APTOS_NODE_URL[chainId]);\n  const { data }: any = await client.getAccountResource(\n    MODULE_ADDRESS[chainId],\n    `${MODULE_ADDRESS[chainId]}::${SURVEY_MODULE}::Survey<${coinType}>`\n  );\n  const { handle } = data.all_events;\n\n  //   await new Promise((resolve) => setTimeout(resolve, 1000))\n\n  try {\n    const dataPredict = await client.getTableItem(handle, {\n      key_type: `${MODULE_ADDRESS[chainId]}::${INFORMATION_MODULE}::EventID`,\n      value_type: `${MODULE_ADDRESS[chainId]}::${SURVEY_MODULE}::Event<${coinType}>`,\n      key: {\n        creator,\n        description:\n          options.length !== 0\n            ? `${description}?#(${coinType})?#${getOptionHashValue(options)}`\n            : description,\n      },\n    });\n    return dataPredict;\n  } catch (error: any) {\n    return error;\n  }\n};\n\n// creator : the event creator\n// description: The event description has a data type of string.\n// options: The event options has a data type of array.\n// chainId: The network chainId\nexport const getSurveyNFTEventByEventID = async (\n  creator: HexString,\n  description: string,\n  options: string[],\n  chainId: IChainID[\"value\"]\n) => {\n  const client = new AptosClient(APTOS_NODE_URL[chainId]);\n  const { data }: any = await client.getAccountResource(\n    MODULE_ADDRESS[chainId],\n    `${MODULE_ADDRESS[chainId]}::${SURVEY_NFT_MODULE}::SurveyNft`\n  );\n  const { handle } = data.all_events;\n\n  try {\n    const dataPredict = await client.getTableItem(handle, {\n      key_type: `${MODULE_ADDRESS[chainId]}::${INFORMATION_MODULE}::EventID`,\n      value_type: `${MODULE_ADDRESS[chainId]}::${SURVEY_NFT_MODULE}::Event`,\n      key: {\n        creator,\n        description:\n          options.length !== 0\n            ? `${description}?#${getOptionHashValue(options)}`\n            : description,\n      },\n    });\n    return dataPredict;\n  } catch (error: any) {\n    return error;\n  }\n};\n\nexport const getTokenBalance = async (\n  owner: HexString,\n  itemName: string,\n  chainId: IChainID[\"value\"]\n) => {\n  const client = new AptosClient(APTOS_NODE_URL[chainId]);\n  const tokenClient = new TokenClient(client);\n  const tokenId: any = {\n    token_data_id: {\n      creator: RESOURCE_ADDRESS[chainId],\n      collection: COLLECTION[chainId],\n      name: itemName,\n    },\n    property_version: \"0\",\n  };\n  let amount: string = \"\";\n  await tokenClient.getTokenForAccount(owner, tokenId).then((res) => {\n    amount = res.amount;\n  });\n  return amount;\n};\n\nexport const getTokenForAccount = (\n  owner: string,\n  itemName: string,\n  chainId: IChainID['value'] = 2\n) => {\n  const client = new AptosClient(APTOS_NODE_URL[chainId]);\n  const tokenClient = new TokenClient(client);\n  const tokenId: any = {\n    token_data_id: {\n      creator: RESOURCE_ADDRESS[chainId],\n      collection: COLLECTION[chainId],\n      name: itemName,\n    },\n    property_version: '0',\n  };\n  return tokenClient\n    .getTokenForAccount(owner, tokenId)\n    .then((res) => res.amount);\n};\n\nexport const getMemberOperatorRole = async (chainId: IChainID[\"value\"]) => {\n  const client = new AptosClient(APTOS_NODE_URL[chainId]);\n  const { data }: any = await client.getAccountResource(\n    MODULE_ADDRESS[chainId],\n    `${MODULE_ADDRESS[chainId]}::access_control::AccessControl`\n  );\n  const operator = data.role.data.filter(\n    (item: any) => item.key === \"Operator\"\n  )[0].value;\n  return operator;\n};\n\nexport const getServiceFee = async (chainId: IChainID[\"value\"]) => {\n  const client = new AptosClient(APTOS_NODE_URL[chainId]);\n  const { data }: any = await client.getAccountResource(\n    MODULE_ADDRESS[chainId],\n    `${MODULE_ADDRESS[chainId]}::information_data_factory::Information`\n  );\n  return data.fee_numerator / data.fee_denominator;\n};\n\nexport const getOptionPrice = async (\n  creator: HexString,\n  description: string,\n  options: string[],\n  chainId: IChainID[\"value\"],\n  token_name: string\n) => {\n  const event = await getPredictEventByEventID(\n    creator,\n    description,\n    options,\n    chainId\n  );\n  const client = new AptosClient(APTOS_NODE_URL[chainId]);\n  const tokenClient = new TokenClient(client);\n  let totalSupply = 0;\n  let count = 0;\n  await Promise.all(\n    options.map(async (option) => {\n      const tokenName = `${token_name.split(\"-\")[0]}- ${option}`;\n      const tokenData = await tokenClient.getTokenData(\n        RESOURCE_ADDRESS[chainId],\n        COLLECTION[chainId],\n        tokenName\n      );\n      if (tokenData.supply > 0) {\n        totalSupply += Number(tokenData.supply);\n        count += 1;\n      }\n    })\n  );\n  if (event?.reward?.value < 100000000 || count < 2) {\n    return 1;\n  }\n  const tokenData = await tokenClient.getTokenData(\n    RESOURCE_ADDRESS[chainId],\n    COLLECTION[chainId],\n    token_name\n  );\n  const initScale = 1 / (options.length - 1);\n  const poolScale = tokenData.supply / (totalSupply - tokenData.supply);\n  const rewardRate = totalSupply / tokenData.supply;\n  const tokenRate = 1 - (initScale - poolScale);\n  return (rewardRate / ((rewardRate - 1) * tokenRate + 1)).toFixed(4);\n};\n","import { sha256 } from \"js-sha256\";\n\nexport const getOptionHashValue = (options: string[]) => {\n  let hashOptionsValue = \"\";\n  let i = 0;\n  while (i < options.length) {\n    const hash = sha256.create();\n    hash.update(options[i]);\n    hashOptionsValue += +hash.array().pop()!;\n    i += 1;\n  }\n  return hashOptionsValue;\n};\n","import { HexString } from \"aptos\";\nimport axios from \"axios\";\nimport { IChainID } from \"./types\";\nimport { GraphQLEndpoint, MODULE_ADDRESS } from \"./constants\";\nimport { getPredictEventByEventID } from \"./getResource\";\n\nexport const getEventByCreator = async (\n  creator: HexString,\n  chainID: IChainID[\"value\"]\n) => {\n  const body = {\n    operationName: \"GetEventByCreator\",\n    query: `query GetEventByCreator {\n      events(\n        where: {account_address: {_like: \"${MODULE_ADDRESS[chainID]}\"}, type: {_regex: \"CreateEvent\"}}\n      ) {\n        data\n      }\n    }\n    `,\n    variables: null,\n  };\n  const data = await axios.post(GraphQLEndpoint[chainID], body);\n  const results: any[] = [];\n  await Promise.all(\n    data.data.data.events\n      ?.reduce(\n        (a: any[], event: any) =>\n          event.data.creator === creator ? [...a, event] : a,\n        []\n      )\n      .map(async (value: any) => {\n        const result = await getPredictEventByEventID(\n          value.data.event_id.creator,\n          value.data.event_id.description,\n          [],\n          chainID\n        );\n        results.push(result);\n      })\n  );\n  return results;\n};\n\nexport const getJoinedEvent = async (\n  predictor: HexString,\n  chainID: IChainID[\"value\"]\n) => {\n  const body = {\n    operationName: \"GetEventByCreator\",\n    query: `query GetEventByCreator {\n      events(\n        where: {account_address: {_like: \"${MODULE_ADDRESS[chainID]}\"}, type: {_regex: \"PredictEvent\"}}\n      ) {\n        data\n      }\n    }\n    `,\n    variables: null,\n  };\n  const data = await axios.post(GraphQLEndpoint[chainID], body);\n  const results: any[] = [];\n  await Promise.all(\n    data.data.data.events\n      ?.reduce(\n        (a: any[], event: any) =>\n          event.data.predicter === predictor ? [...a, event] : a,\n        []\n      )\n      .map(async (value: any) => {\n        const result = await getPredictEventByEventID(\n          value.data.event_id.creator,\n          value.data.event_id.description,\n          [],\n          chainID\n        );\n        results.push(result);\n      })\n  );\n  return results;\n};\n","import { HexString, Types } from \"aptos\";\nimport {\n  COLLECTION,\n  INFORMATION_MODULE,\n  MODULE_ADDRESS,\n  RESOURCE_ADDRESS,\n} from \"./constants\";\nimport { IChainID } from \"./types\";\n\nconst createPredictEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  uri: string,\n  options: string[],\n  start_time: number,\n  end_time: number,\n  payout_time: number,\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::create_predict_event`,\n    type_arguments: [type_arguments],\n    arguments: [\n      `${description}?#(${type_arguments})`,\n      uri,\n      options,\n      start_time,\n      end_time,\n      payout_time,\n    ],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst createSurveyEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  uri: string,\n  reward: number,\n  options: string[],\n  start_time: number,\n  end_time: number,\n  payout_time: number,\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::create_survey_event`,\n    type_arguments: [type_arguments],\n    arguments: [\n      `${description}?#(${type_arguments})`,\n      uri,\n      reward,\n      options,\n      start_time,\n      end_time,\n      payout_time,\n    ],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst createSurveyNFTEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  collection: string,\n  uri: string,\n  options: string[],\n  start_time: number,\n  end_time: number,\n  payout_time: number\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::create_survey_nft_event`,\n    type_arguments: [],\n    arguments: [\n      description,\n      collection,\n      uri,\n      options,\n      start_time,\n      end_time,\n      payout_time,\n    ],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst predictEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  option: string,\n  amount: number,\n  event_creator: HexString,\n  event_description: String,\n  event_options: string[],\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::predict_event`,\n    type_arguments: [type_arguments],\n    arguments: [\n      option,\n      amount,\n      event_creator,\n      `${event_description}?#(${type_arguments})`,\n      event_options,\n    ],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst surveyEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  option: string,\n  event_creator: HexString,\n  event_description: String,\n  event_options: string[],\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::survey_event`,\n    type_arguments: [type_arguments],\n    arguments: [\n      option,\n      event_creator,\n      `${event_description}?#(${type_arguments})`,\n      event_options,\n    ],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst surveyNFTEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  option: string,\n  amount: number,\n  event_creator: HexString,\n  event_description: String,\n  event_options: string[],\n  token_creator: HexString,\n  collection: string,\n  token_name: string,\n  token_version: number\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::survey_nft_event`,\n    type_arguments: [],\n    arguments: [\n      option,\n      amount,\n      event_creator,\n      event_description,\n      event_options,\n      token_creator,\n      collection,\n      token_name,\n      token_version,\n    ],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst redeemPredictEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  name: string,\n  amount: number,\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::redeem_predict_event`,\n    type_arguments: [type_arguments],\n    arguments: [RESOURCE_ADDRESS[chainID], COLLECTION[chainID], name, amount],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst redeemSurveyEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  name: string,\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::redeem_survey_event`,\n    type_arguments: [type_arguments],\n    arguments: [RESOURCE_ADDRESS[chainID], COLLECTION[chainID], name],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst redeemSurveyNFTEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  name: string,\n  amount: number\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::redeem_survey_nft_event`,\n    type_arguments: [],\n    arguments: [RESOURCE_ADDRESS[chainID], COLLECTION[chainID], name, amount],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst finalizePredictEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  options: string[],\n  outcomes: number[],\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::finalize_predict_event`,\n    type_arguments: [type_arguments],\n    arguments: [`${description}?#(${type_arguments})`, options, outcomes],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst finalizeSurveyEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  options: string[],\n  outcomes: number[],\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::finalize_survey_event`,\n    type_arguments: [type_arguments],\n    arguments: [`${description}?#(${type_arguments})`, options, outcomes],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst finalizeSurveyNFtEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  options: string[],\n  outcomes: number[]\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::finalize_survey_nft_event`,\n    type_arguments: [],\n    arguments: [description, options, outcomes],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst cancelPredictEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  options: string[],\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::cancel_predict_event`,\n    type_arguments: [type_arguments],\n    arguments: [`${description}?#(${type_arguments})`, options],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst cancelSurveyEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  options: string[],\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::cancel_survey_event`,\n    type_arguments: [type_arguments],\n    arguments: [`${description}?#(${type_arguments})`, options],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst cancelSurveyNFTEvent = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  description: string,\n  options: string[]\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::cancel_survey_nft_event`,\n    type_arguments: [],\n    arguments: [description, options],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\n\nconst registerCoinType = async (\n  signAndSubmitTransactionCallback: (\n    transaction: Types.TransactionPayload,\n    options?: any\n  ) => Promise<any>,\n  chainID: IChainID[\"value\"],\n  type_arguments: string\n): Promise<any> => {\n  const payload: Types.TransactionPayload = {\n    type: \"entry_function_payload\",\n    function: `${MODULE_ADDRESS[chainID]}::${INFORMATION_MODULE}::register_coin_type`,\n    type_arguments: [type_arguments],\n    arguments: [],\n  };\n  return signAndSubmitTransactionCallback(payload);\n};\nexport {\n  createPredictEvent,\n  createSurveyEvent,\n  createSurveyNFTEvent,\n  predictEvent,\n  surveyEvent,\n  surveyNFTEvent,\n  redeemPredictEvent,\n  redeemSurveyEvent,\n  redeemSurveyNFTEvent,\n  finalizePredictEvent,\n  finalizeSurveyNFtEvent,\n  cancelPredictEvent,\n  cancelSurveyEvent,\n  cancelSurveyNFTEvent,\n  registerCoinType,\n  finalizeSurveyEvent,\n};\n"],"mappings":"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A,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAUA,MAAM,qBACJ,aACA,YACA,KACA,SACA,YACA,UACA,aACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAIA,MAAM,aACJ,QACA,QACA,eACA,mBACA,eACA,gBACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAGA,MAAM,YACJ,QACA,eACA,mBACA,eACA,gBACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAQA,MAAM,eACJ,QACA,QACA,eACA,mBACA,eACA,eACA,YACA,YACA,eACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAKA,MAAM,qBACJ,aACA,SACA,UACA,gBACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAKA,MAAM,oBACJ,aACA,SACA,UACA,gBACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAKA,MAAM,uBACJ,aACA,SACA,UACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAGA,MAAM,mBACJ,MACA,QACA,gBACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAGA,MAAM,kBAAkB,MAAc,gBAAsC;AAC1E,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAGA,MAAM,qBAAqB,MAAc,QAA8B;AACrE,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,mBACJ,aACA,SACA,gBACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,kBACJ,aACA,SACA,gBACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,qBACJ,aACA,SACc;AACd,WAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":["AptosClient","HexString","tokenData","AptosClient","HexString"]}