{"version":3,"sources":["/Users/paul-n/git/ston-fi/public/sdk-contracts/packages/sdk/dist/chunk-XC3GJJNA.cjs","../src/contracts/farm/v1/FarmNftItemV1.ts"],"names":[],"mappings":"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","file":"/Users/paul-n/git/ston-fi/public/sdk-contracts/packages/sdk/dist/chunk-XC3GJJNA.cjs","sourcesContent":[null,"import {\n  beginCell,\n  type Cell,\n  type ContractProvider,\n  type Sender,\n  type SenderArguments,\n  toNano,\n} from \"@ton/ton\";\n\nimport type { AddressType, AmountType, QueryIdType } from \"../../../types\";\nimport { Contract, type ContractOptions } from \"../../core/Contract\";\nimport { FARM_OP_CODES, FARM_VERSION } from \"../constants\";\n\nexport interface FarmNftItemV1Options extends ContractOptions {\n  gasConstants?: Partial<typeof FarmNftItemV1.gasConstants>;\n}\n\n/**\n * @deprecated `v1` 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 FarmNftItemV1 extends Contract {\n  public static readonly version: FARM_VERSION = FARM_VERSION.v1;\n\n  public static readonly gasConstants = {\n    claimRewards: toNano(\"0.3\"),\n    unstake: toNano(\"0.4\"),\n    destroy: toNano(\"0.05\"),\n  };\n\n  public readonly gasConstants;\n\n  constructor(\n    address: AddressType,\n    { gasConstants, ...options }: FarmNftItemV1Options = {},\n  ) {\n    super(address, options);\n\n    this.gasConstants = {\n      ...FarmNftItemV1.gasConstants,\n      ...gasConstants,\n    };\n  }\n\n  public async createClaimRewardsBody(params?: {\n    queryId?: QueryIdType;\n  }): Promise<Cell> {\n    return beginCell()\n      .storeUint(FARM_OP_CODES.CLAIM_REWARDS, 32)\n      .storeUint(BigInt(params?.queryId ?? 0), 64)\n      .endCell();\n  }\n\n  /**\n   * Build all data required to execute a `claim_rewards` transaction.\n   *\n   * @param {bigint | number | string | undefined} params.gasAmount - Optional; Custom transaction gas amount (in nanoTons)\n   * @param {bigint | number | undefined} params.queryId - Optional; query id\n   *\n   * @returns {SenderArguments} all data required to execute a `claim_rewards` transaction.\n   */\n  public async getClaimRewardsTxParams(\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.createClaimRewardsBody({\n      queryId: params?.queryId,\n    });\n\n    const value = BigInt(params?.gasAmount ?? this.gasConstants.claimRewards);\n\n    return { to, value, body };\n  }\n\n  public async sendClaimRewards(\n    provider: ContractProvider,\n    via: Sender,\n    params: Parameters<FarmNftItemV1[\"getClaimRewardsTxParams\"]>[1],\n  ) {\n    const txParams = await this.getClaimRewardsTxParams(provider, params);\n\n    return via.send(txParams);\n  }\n\n  public async createUnstakeBody(params?: {\n    queryId?: QueryIdType;\n  }): Promise<Cell> {\n    return beginCell()\n      .storeUint(FARM_OP_CODES.UNSTAKE, 32)\n      .storeUint(BigInt(params?.queryId ?? 0), 64)\n      .endCell();\n  }\n\n  /**\n   * Build all data required to execute a `unstake` transaction.\n   *\n   * @param {bigint | number | string | undefined} params.gasAmount - Optional; Custom transaction gas amount (in nanoTons)\n   * @param {bigint | number | undefined} params.queryId - Optional; query id\n   *\n   * @returns {SenderArguments} all data required to execute a `unstake` transaction.\n   */\n  public async getUnstakeTxParams(\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.createUnstakeBody({\n      queryId: params?.queryId,\n    });\n\n    const value = BigInt(params?.gasAmount ?? this.gasConstants.unstake);\n\n    return { to, value, body };\n  }\n\n  public async sendUnstake(\n    provider: ContractProvider,\n    via: Sender,\n    params: Parameters<FarmNftItemV1[\"getUnstakeTxParams\"]>[1],\n  ) {\n    const txParams = await this.getUnstakeTxParams(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 {boolean} isSoulbound If nft is soulbound\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   */\n  public async getFarmingData(provider: ContractProvider) {\n    const result = await provider.get(\"get_farming_data\", []);\n\n    return {\n      status: result.stack.readNumber(),\n      isSoulbound: result.stack.readBoolean(),\n      stakedTokens: result.stack.readBigNumber(),\n      claimedPerUnitNanorewards: result.stack.readBigNumber(),\n    };\n  }\n}\n"]}