{"version":3,"sources":["/Users/paul-n/git/ston-fi/public/sdk-contracts/packages/sdk/dist/chunk-JEI7ZWK3.cjs","../src/contracts/pTON/v2_1/PtonV2_1.ts"],"names":[],"mappings":"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","file":"/Users/paul-n/git/ston-fi/public/sdk-contracts/packages/sdk/dist/chunk-JEI7ZWK3.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 { toAddress } from \"../../../utils/toAddress\";\nimport type { AbstractPton } from \"../AbstractPton\";\nimport { pTON_VERSION } from \"../constants\";\nimport { PtonV1, type PtonV1Options } from \"../v1/PtonV1\";\nimport { pTON_OP_CODES } from \"./constants\";\n\nexport interface PtonV2_1Options extends PtonV1Options {\n  gasConstants?: Partial<typeof PtonV2_1.gasConstants>;\n}\n\nexport class PtonV2_1 extends PtonV1 implements AbstractPton {\n  public static override readonly version = pTON_VERSION.v2_1;\n\n  public static override readonly gasConstants = {\n    tonTransfer: toNano(\"0.01\"),\n    deployWallet: toNano(\"0.1\"),\n  };\n\n  public override readonly version = PtonV2_1.version;\n\n  public override readonly gasConstants;\n\n  constructor(\n    address: AddressType,\n    { gasConstants, ...options }: PtonV2_1Options = {},\n  ) {\n    super(address, options);\n\n    this.gasConstants = {\n      ...PtonV2_1.gasConstants,\n      ...gasConstants,\n    };\n  }\n\n  public async createTonTransferBody(params: {\n    tonAmount: AmountType;\n    refundAddress: AddressType;\n    forwardPayload?: Cell;\n    queryId?: QueryIdType;\n  }): Promise<Cell> {\n    const builder = beginCell();\n\n    builder.storeUint(pTON_OP_CODES.TON_TRANSFER, 32);\n    builder.storeUint(params.queryId ?? 0, 64);\n    builder.storeCoins(BigInt(params.tonAmount));\n    builder.storeAddress(toAddress(params.refundAddress));\n\n    if (params.forwardPayload) {\n      builder.storeBit(true);\n      builder.storeRef(params.forwardPayload);\n    } else {\n      builder.storeBit(false);\n    }\n\n    return builder.endCell();\n  }\n\n  public override async getTonTransferTxParams(\n    provider: ContractProvider,\n    params: {\n      tonAmount: AmountType;\n      destinationAddress: AddressType;\n      destinationWalletAddress?: AddressType;\n      refundAddress: AddressType;\n      forwardPayload?: Cell;\n      forwardTonAmount?: AmountType;\n      queryId?: QueryIdType;\n    },\n  ): Promise<SenderArguments> {\n    const to = params.destinationWalletAddress\n      ? toAddress(params.destinationWalletAddress)\n      : await this.getWalletAddress(provider, params.destinationAddress);\n\n    const body = await this.createTonTransferBody({\n      tonAmount: params.tonAmount,\n      refundAddress: params.refundAddress,\n      forwardPayload: params.forwardPayload,\n      queryId: params.queryId,\n    });\n\n    const value =\n      BigInt(params.tonAmount) +\n      BigInt(params.forwardTonAmount ?? 0) +\n      BigInt(this.gasConstants.tonTransfer);\n\n    return { to, value, body };\n  }\n\n  public override async sendTonTransfer(\n    provider: ContractProvider,\n    via: Sender,\n    params: Parameters<PtonV2_1[\"getTonTransferTxParams\"]>[1],\n  ) {\n    const txParams = await this.getTonTransferTxParams(provider, params);\n\n    return via.send(txParams);\n  }\n\n  public override async createDeployWalletBody(params: {\n    ownerAddress: AddressType;\n    excessAddress: AddressType;\n    queryId?: QueryIdType;\n  }): Promise<Cell> {\n    return beginCell()\n      .storeUint(pTON_OP_CODES.DEPLOY_WALLET, 32)\n      .storeUint(params.queryId ?? 0, 64)\n      .storeAddress(toAddress(params.ownerAddress))\n      .storeAddress(toAddress(params.excessAddress))\n      .endCell();\n  }\n\n  public override async getDeployWalletTxParams(\n    provider: ContractProvider,\n    params: {\n      ownerAddress: AddressType;\n      excessAddress: AddressType;\n      gasAmount?: AmountType;\n      queryId?: QueryIdType;\n    },\n  ): Promise<SenderArguments> {\n    const to = this.address;\n\n    const body = await this.createDeployWalletBody({\n      ownerAddress: params.ownerAddress,\n      excessAddress: params.excessAddress,\n      queryId: params?.queryId,\n    });\n\n    const value = BigInt(params?.gasAmount ?? this.gasConstants.deployWallet);\n\n    return { to, value, body };\n  }\n\n  public override async sendDeployWallet(\n    provider: ContractProvider,\n    via: Sender,\n    params: Parameters<PtonV2_1[\"getDeployWalletTxParams\"]>[1],\n  ) {\n    const txParams = await this.getDeployWalletTxParams(provider, params);\n\n    return via.send(txParams);\n  }\n}\n"]}