{"version":3,"sources":["/Users/paul-n/git/ston-fi/public/sdk-contracts/packages/sdk/dist/chunk-EPENCUMJ.cjs","../src/contracts/farm/v2/FarmNftItemV2.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACKO,IAAM,cAAA,YAAN,MAAA,QAA4B,gCAAc;AAAA,EAC/C,4BAAuB,QAAA,EAAU,8BAAA,CAAa,GAAA;AAAA,EAE9C,MAAa,iBAAA,CAAkB,MAAA,EAEb;AAChB,IAAA,OAAO,uDAAA;AAAwB,MAC7B,OAAA,mCAAS,MAAA,2BAAQ,SAAA,UAAW;AAAA,IAC9B,CAAC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,kBAAA,CACX,QAAA,EACA,MAAA,EAI0B;AAC1B,IAAA,MAAM,GAAA,EAAK,IAAA,CAAK,OAAA;AAEhB,IAAA,MAAM,KAAA,EAAO,MAAM,IAAA,CAAK,iBAAA,CAAkB;AAAA,MACxC,OAAA,kBAAS,MAAA,6BAAQ;AAAA,IACnB,CAAC,CAAA;AAED,IAAA,MAAM,MAAA,EAAQ,MAAA,kCAAO,MAAA,6BAAQ,WAAA,UAAa,IAAA,CAAK,YAAA,CAAa,SAAO,CAAA;AAEnE,IAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,KAAK,CAAA;AAAA,EAC3B;AAAA,EAEA,MAAa,WAAA,CACX,QAAA,EACA,GAAA,EACA,MAAA,EACA;AACA,IAAA,MAAM,SAAA,EAAW,MAAM,IAAA,CAAK,kBAAA,CAAmB,QAAA,EAAU,MAAM,CAAA;AAE/D,IAAA,OAAO,GAAA,CAAI,IAAA,CAAK,QAAQ,CAAA;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAsB,cAAA,CAAe,QAAA,EAA4B;AAC/D,IAAA,MAAM,OAAA,EAAS,MAAM,QAAA,CAAS,GAAA,CAAI,kBAAA,EAAoB,CAAC,CAAC,CAAA;AAExD,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,MAAA,CAAO,KAAA,CAAM,UAAA,CAAW,CAAA;AAAA,MAChC,UAAA,EAAY,MAAA,CAAO,KAAA,CAAM,aAAA,CAAc,CAAA;AAAA,MACvC,YAAA,EAAc,MAAA,CAAO,KAAA,CAAM,aAAA,CAAc,CAAA;AAAA,MACzC,yBAAA,EAA2B,MAAA,CAAO,KAAA,CAAM,aAAA,CAAc,CAAA;AAAA,MACtD,SAAA,EAAW,MAAA,CAAO,KAAA,CAAM,aAAA,CAAc,CAAA;AAAA,MACtC,WAAA,EAAa;AAAA;AAAA,IACf,CAAA;AAAA,EACF;AACF,iCAAA;ADvBA;AACA;AACE;AACF,sCAAC","file":"/Users/paul-n/git/ston-fi/public/sdk-contracts/packages/sdk/dist/chunk-EPENCUMJ.cjs","sourcesContent":[null,"import type { Cell, ContractProvider, Sender, SenderArguments } from \"@ton/ton\";\n\nimport type { AmountType, QueryIdType } from \"../../../types\";\nimport { createSbtDestroyMessage } from \"../../../utils/createSbtDestroyMessage\";\nimport { FARM_VERSION } from \"../constants\";\nimport { FarmNftItemV1, type FarmNftItemV1Options } from \"../v1/FarmNftItemV1\";\n\nexport interface FarmNftItemV2Options extends FarmNftItemV1Options {}\n\n/**\n * @deprecated `v2` version of the FarmNftItem contracts is deprecated.\n *\n * Only use this version to claim rewards and unstake tokens from the contract.\n * For all other operations, use the latest version of the contract.\n */\nexport class FarmNftItemV2 extends FarmNftItemV1 {\n  public static override version = FARM_VERSION.v2;\n\n  public async createDestroyBody(params?: {\n    queryId?: QueryIdType;\n  }): Promise<Cell> {\n    return createSbtDestroyMessage({\n      queryId: params?.queryId ?? 0,\n    });\n  }\n\n  /**\n   * Build all data required to execute a `destroy` transaction.\n   *\n   * @param {bigint | number | string | undefined} params.gasAmount - Optional; amount of gas for the transaction (in nanoTons)\n   * @param {bigint | number | undefined} params.queryId - Optional; query id\n   *\n   * @returns {SenderArguments} all data required to execute a `destroy` transaction.\n   */\n  public async getDestroyTxParams(\n    provider: ContractProvider,\n    params?: {\n      gasAmount?: AmountType;\n      queryId?: QueryIdType;\n    },\n  ): Promise<SenderArguments> {\n    const to = this.address;\n\n    const body = await this.createDestroyBody({\n      queryId: params?.queryId,\n    });\n\n    const value = BigInt(params?.gasAmount ?? this.gasConstants.destroy);\n\n    return { to, value, body };\n  }\n\n  public async sendDestroy(\n    provider: ContractProvider,\n    via: Sender,\n    params: Parameters<FarmNftItemV2[\"getDestroyTxParams\"]>[1],\n  ) {\n    const txParams = await this.getDestroyTxParams(provider, params);\n\n    return via.send(txParams);\n  }\n\n  /**\n   * @returns structure containing current state of the farm NFT\n   *\n   * @property {number} status Status of the contract: uninitialized `0`, active `1`, unstaked `2`, claiming `3`\n   * @property {bigint} revokeTime Timestamp of unstake\n   * @property {bigint} stakedTokens Amount of staked tokens\n   * @property {bigint} claimedPerUnitNanorewards `accrued_per_unit_nanorewards` at the time the user made the stake or last claimed rewards\n   * @property {bigint} stakeDate Timestamp in which the owner started staking\n   * @property {boolean} isSoulbound If nft is soulbound; Always true in V2\n   */\n  public override async getFarmingData(provider: ContractProvider) {\n    const result = await provider.get(\"get_farming_data\", []);\n\n    return {\n      status: result.stack.readNumber(),\n      revokeTime: result.stack.readBigNumber(),\n      stakedTokens: result.stack.readBigNumber(),\n      claimedPerUnitNanorewards: result.stack.readBigNumber(),\n      stakeDate: result.stack.readBigNumber(),\n      isSoulbound: true, // NFTs are always soulbound in V2\n    };\n  }\n}\n"]}