{"version":3,"file":"index-legacy.2dd1ee00.js","sources":["../../../../src/composables/tron/useResourceTypeText.ts","../../../../src/assets/imgs/activity-pc-ch.svg","../../../../src/assets/imgs/activity-pc-en.svg","../../../../src/assets/imgs/activity-imtoken.svg","../../../../src/components/activity/src/Desktop.vue","../../../../src/assets/imgs/arrow-s2.svg","../../../../src/assets/imgs/c2c-sell.png","../../../../src/pages-components/c2c/components/FastTrad.vue","../../../../src/composables/app/getC2cAmountCalculator.ts","../../../../src/pages-components/c2c/components/buy/hooks/useBuy.ts","../../../../src/pages-components/c2c/components/buy/machine/c2cBuyMachine.ts","../../../../src/pages-components/c2c/components/buy/machine/useC2cBuyMachine.ts","../../../../src/components/order-create/src/OrderCreate.vue","../../../../src/pages-components/c2c/components/buy/BuyTnfoConfirmation.vue","../../../../src/pages-components/c2c/components/buy/BuyPopupGather.vue","../../../../src/components/custom-input-number/src/CustomInputNumber.vue","../../../../src/components/check-box/CheckBox.vue","../../../../src/pages-components/c2c/components/buy/BuyPopup.vue","../../../../src/pages-components/c2c/hooks/useMultiSign.ts","../../../../src/pages-components/c2c/hooks/useSell.ts","../../../../src/pages-components/c2c/components/freeze/hooks/useFreeze.ts","../../../../src/pages-components/c2c/components/freeze/FreezePopup.vue","../../../../src/pages-components/c2c/components/sell/machine/c2cSellMachine.ts","../../../../src/pages-components/c2c/components/sell/machine/useC2cSellMachine.ts","../../../../src/pages-components/c2c/components/sell/SellPopup.vue","../../../../src/pages-components/c2c/components/sell/hooks/index.ts","../../../../src/assets/imgs/no-trade.png","../../../../src/pages-components/c2c/components/sell/SelfHelpOrder.vue","../../../../src/pages-components/c2c/components/VoteModal.vue","../../../../src/pages-components/c2c/components/current-order/RightExtra.vue","../../../../src/pages-components/c2c/components/current-order/CurrentOrder.vue","../../../../src/pages-components/c2c/components/history/LatestTable.vue","../../../../src/pages-components/c2c/components/history/RecycleResoure.vue","../../../../src/pages-components/c2c/components/history/AgentTable.vue","../../../../src/pages-components/c2c/components/history/Progress.vue","../../../../src/pages-components/c2c/components/history/MineOrderDetail.vue","../../../../src/pages-components/c2c/components/history/BuyTable.vue","../../../../src/pages-components/c2c/components/history/index.vue","../../../../src/pages-components/c2c/index.vue","../../../../src/pages/c2c/index.vue","../../../../src/composables/imtoken/useIsImtoken.ts"],"sourcesContent":["import { TronRes } from '~/utils/tron-v2'\r\n\r\nexport function useResourceTypeText(type: Ref) {\r\n return computed(() => {\r\n return type.value === TronRes.BANDWIDTH ? $t('IgN1EoVRFTDyCVLbFG-oT') : $t('YUG0RoDj9Kcw8PtVRPR9Y')\r\n })\r\n}\r\n","export default \"__VITE_ASSET__49cf4299__\"","export default \"__VITE_ASSET__b16bb195__\"","export default \"__VITE_ASSET__53e41bea__\"","\r\n\r\n\r\n\r\n\r\n","export default \"__VITE_ASSET__c796d0e8__\"","export default \"__VITE_ASSET__82b75fae__\"","\r\n\r\n\r\n\r\n\r\n","import { reactiveComputed } from '@vueuse/core/index'\r\nimport BigNumber, { default as bignumber } from 'bignumber.js';\r\n\r\ninterface ResourceParams {\r\n resourceType: number\r\n rentTimeUnit: 'h' | 'd'| 'm'\r\n rentDuration: number\r\n}\r\n\r\ninterface DiscountParams {\r\n rentTimeUnit: 'h' | 'd'| 'm'\r\n rentDuration: number\r\n resourceValue: number | null\r\n resourceType: number\r\n priceInSun: number\r\n\r\n}\r\n\r\n/**\r\n * 资源价格区间,用于输入框限制及输入判断\r\n * @param resourceType TronRes\r\n */\r\nexport function resourcePriceRange(resourceType: Ref) {\r\n const { config } = useAppState()\r\n return reactiveComputed(() => {\r\n const range = {\r\n c2cMinValue: 0,\r\n c2cMaxValue: 0,\r\n }\r\n if (!config.value?.order)\r\n return range\r\n const order = config.value?.order\r\n range.c2cMinValue = unref(resourceType)\r\n ? order.energy_c2c_min_value\r\n : order.bandwidth_c2c_min_value\r\n range.c2cMaxValue = unref(resourceType)\r\n ? order.energy_c2c_max_value\r\n : order.bandwidth_c2c_max_value\r\n\r\n return range\r\n })\r\n}\r\n\r\n/**\r\n * 单价区间\r\n * @param params\r\n */\r\nexport function resourceUnitPrice(params: T) {\r\n const { config } = useAppState()\r\n const resourceType = computed(() => params.resourceType ? 'energy' : 'bandwidth')\r\n return reactiveComputed(() => {\r\n const type = unref(resourceType)\r\n \r\n const range = {\r\n c2cMinSun: config.value?.price_c2c[type]!.sun ?? 90, // 最小值\r\n c2cMaxSun: 0,\r\n }\r\n\r\n const source = config.value?.price_c2c[type]\r\n\r\n if (!source)\r\n return range\r\n if (params.rentTimeUnit === 'm') {\r\n range.c2cMinSun = source.sun_m\r\n }\r\n if (params.rentTimeUnit === 'd') {\r\n if (params.rentDuration === 1)\r\n range.c2cMinSun = source.sun_1d || 0\r\n }\r\n else if (params.rentTimeUnit === 'h') {\r\n if (params.rentDuration === 1)\r\n range.c2cMinSun = source.sun_1h || 0\r\n else if (params.rentDuration === 6)\r\n range.c2cMinSun = source.sun_6h || 0\r\n else if (params.rentDuration === 3)\r\n range.c2cMinSun = source.sun_3h || 0\r\n }\r\n\r\n range.c2cMaxSun = source?.max_sun\r\n\r\n return range\r\n })\r\n}\r\n\r\n/**\r\n * 默认单价\r\n * @param params\r\n */\r\nexport function resourceDefaultPrice(params: T) {\r\n const { config } = useAppState()\r\n const resourceType = computed(() => params.resourceType ? 'energy' : 'bandwidth')\r\n return computed(() => {\r\n const type = resourceType.value.toLowerCase()\r\n // @ts-expect-error\r\n const source = config.value?.price_c2c[type]\r\n if (!source)\r\n return 0\r\n let defaultPriceInSun = source.default_sun\r\n\r\n if (params.rentTimeUnit === 'm') {\r\n defaultPriceInSun = source.default_sun_m\r\n }\r\n if (params.rentTimeUnit === 'd') {\r\n if (params.rentDuration === 1)\r\n defaultPriceInSun = source.default_sun_1d\r\n }\r\n else if (params.rentTimeUnit === 'h') {\r\n if (params.rentDuration === 1)\r\n defaultPriceInSun = source.default_sun_1h\r\n else if (params.rentDuration === 6)\r\n defaultPriceInSun = source.default_sun_6h\r\n else if (params.rentDuration === 3)\r\n defaultPriceInSun = source.default_sun_3h\r\n }\r\n return defaultPriceInSun\r\n })\r\n}\r\n\r\n/**\r\n * 计算折扣\r\n * @param params\r\n * todo 折扣类型返回有问题\r\n */\r\nexport function discountResult(params: T) {\r\n return reactiveComputed(() => {\r\n const { config } = useAppState()\r\n const info = {\r\n fee: bignumber(0),\r\n amount: bignumber(0),\r\n save: bignumber(0),\r\n discount: bignumber(0),\r\n needBurning: bignumber(0),\r\n }\r\n if (!params.priceInSun || !params.resourceValue)\r\n return info\r\n const day = params.rentTimeUnit === 'd' ? bignumber(params.rentDuration) : bignumber(1)\r\n \r\n const needBurning = params.resourceType\r\n ? bignumber(params.resourceValue).multipliedBy((config.value?.estimate.energy_price ?? 210)).dividedBy(1000000).multipliedBy(day)\r\n : bignumber(1000).dividedBy(1000000).multipliedBy(params.resourceValue).multipliedBy(day);\r\n\r\n info.needBurning = needBurning\r\n info.amount = calcAmount(params)\r\n \r\n // todo 此处将toFixed 改成 BigNumber.ROUND_DOWN 截断\r\n info.save = needBurning.minus(info.amount).isNegative()\r\n ? new BigNumber(0)\r\n : needBurning.minus(info.amount).decimalPlaces(2, BigNumber.ROUND_DOWN);\r\n \r\n const discountFormula = bignumber(100).multipliedBy(bignumber(1).minus(info.amount.dividedBy(needBurning)));\r\n info.discount = discountFormula.isNegative()\r\n ? bignumber(0)\r\n : discountFormula.decimalPlaces(0, BigNumber.ROUND_DOWN);\r\n \r\n\r\n return info\r\n })\r\n}\r\n\r\nfunction calcAmount(params: T) {\r\n let payAmount = bignumber(0)\r\n switch (params.rentTimeUnit) {\r\n case 'd':\r\n if (params.rentDuration < 1 || params.rentDuration > 30)\r\n break\r\n \r\n payAmount = bignumber((params.resourceValue ?? 0))\r\n .multipliedBy(params.priceInSun)\r\n .dividedBy(1000000)\r\n .multipliedBy(params.rentDuration)\r\n .decimalPlaces(6, BigNumber.ROUND_DOWN);\r\n break;\r\n // 默认:小时、分钟\r\n default:\r\n if (params.rentDuration < 1 || params.rentDuration > 23)\r\n break\r\n \r\n payAmount = bignumber((params.resourceValue ?? 0))\r\n .multipliedBy(params.priceInSun)\r\n .dividedBy(1000000)\r\n .multipliedBy(1)\r\n .decimalPlaces(6, BigNumber.ROUND_DOWN);\r\n break;\r\n \r\n }\r\n return payAmount\r\n}\r\n","import { createInjectionState, reactiveComputed, useEventBus } from '@vueuse/core'\r\nimport { TronRes, tron } from '~/utils/tron-v2'\r\nimport { EPaymentMethod } from '~/components/pay-type/src/PayType.vue'\r\nimport { imtoken } from '~/utils/imtoken'\r\nimport { useRentalTime } from '~/composables/useRentalTime'\r\nimport { discountResult, resourceDefaultPrice, resourcePriceRange, resourceUnitPrice } from '~/composables/app/getC2cAmountCalculator'\r\nimport { useUserInfo } from '~/composables/app'\r\n\r\ninterface IFormData {\r\n resourceType: number\r\n receiveAddress: string\r\n resourceValue: number | null\r\n priceInSun: number\r\n rentTimeSecond: number\r\n rentTimeUnit: 'h' | 'd' | 'm'\r\n rentDuration: number\r\n times: number\r\n waitSecond: number\r\n}\r\nexport const [useBuyProvider, useBuy] = createInjectionState(() => {\r\n const { config } = useAppState()\r\n const { shortcutTime } = useRentalTime('c2c')\r\n const { account, isConnected } = tronComp.useAccountCurrent()\r\n const formData = reactive({\r\n resourceType: TronRes.ENERGY,\r\n receiveAddress: '',\r\n resourceValue: null,\r\n priceInSun: 0,\r\n rentTimeSecond: 259200,\r\n rentTimeUnit: 'd',\r\n rentDuration: 3,\r\n times: 1, // 笔数\r\n waitSecond: 1800, // 笔数\r\n })\r\n \r\n watch(config,(val)=>{\r\n console.log('val',val);\r\n if(val?.order.time_range_c2c[0] === 600){\r\n formData.rentTimeSecond = 600;\r\n formData.rentTimeUnit = 'm';\r\n formData.rentDuration = 10;\r\n }\r\n },{immediate:true,deep:true})\r\n \r\n const fromDataRefs = toRefs(formData)\r\n\r\n const unitPriceRange = resourcePriceRange(fromDataRefs.resourceType)\r\n const priceRange = resourceUnitPrice(formData)\r\n const defaultPriceInSun = resourceDefaultPrice(formData)\r\n const discount = discountResult(formData)\r\n\r\n const buyForm = useAntFormValidator({\r\n resourceType: {\r\n value: fromDataRefs.resourceType,\r\n },\r\n receiveAddress: {\r\n value: fromDataRefs.receiveAddress,\r\n validator(rule, value) {\r\n if (!value)\r\n return Promise.reject($t('koczkm929Fmicnja2sYs4'))\r\n\r\n if (isUnaddressDom.value) {\r\n if (!imtoken.isImToken() && !tron.isAddress(value))\r\n return Promise.reject($t('mbKTfi73xuZvYVdZnac7'))\r\n }\r\n return Promise.resolve()\r\n },\r\n },\r\n resourceValue: {\r\n value: fromDataRefs.resourceValue,\r\n validator(rule, value) {\r\n const type = resourceType.value === 'ENERGY' ? $t('Mqe_hlD_yGPsAMB9oaO1D') : $t('xo7kGD9R2fV50wOIihlhL')\r\n\r\n if (typeof value !== 'number')\r\n return Promise.reject($t('cO4MIzIlIHzj5eWyvgb16', { type }))\r\n\r\n if (!value || value <= 0)\r\n return Promise.reject($t('Z3dE8F8H0GPEYq_juWdf5'))\r\n\r\n if (value < unitPriceRange.c2cMinValue)\r\n return Promise.reject(`${$t('9Air0S8Iviz5hpGdRb9Za')} : ${unitPriceRange.c2cMinValue}`)\r\n\r\n if (value > unitPriceRange.c2cMaxValue)\r\n return Promise.reject(`${$t('onYvOfwpMf8GcNrAc5r4H')} ${unitPriceRange.c2cMaxValue}`)\r\n\r\n return Promise.resolve()\r\n },\r\n },\r\n priceInSun: {\r\n value: fromDataRefs.priceInSun,\r\n validator(rule, value) {\r\n if (typeof value !== 'number')\r\n return Promise.reject($t('cw6ImkkTup21CecCdWac'))\r\n\r\n return Promise.resolve()\r\n },\r\n },\r\n rentTimeSecond: {\r\n value: fromDataRefs.rentTimeSecond,\r\n validator(rule, value) {\r\n if (!value)\r\n return Promise.reject($t('dHgidzfd5qiruU6fTpsQ'))\r\n\r\n return Promise.resolve()\r\n },\r\n },\r\n waitSecond:{\r\n value : fromDataRefs.waitSecond\r\n }\r\n })\r\n\r\n const isPenNumber = ref(false)\r\n\r\n const otherMode = computed(() => !!tron.tronWeb && isConnected.value)\r\n\r\n const changeEnergyUnit = (e: boolean) => {\r\n isPenNumber.value = e\r\n }\r\n\r\n const resourceType = computed(() =>\r\n formData.resourceType ? 'ENERGY' : 'BANDWIDTH',\r\n )\r\n const shortcut = computed(() => resourceType.value === 'ENERGY' ? config.value?.order.energy_c2c_quick_options : config.value?.order.bandwidth_quick_options)\r\n\r\n const chooseRentDuration = (item?: number) => {\r\n item = item ?? formData.rentTimeSecond\r\n const data = shortcutTime?.find((i: any) => i.value === item)\r\n if (!data)\r\n return\r\n formData.rentTimeSecond = data.value\r\n formData.rentDuration = data.dur\r\n formData.rentTimeUnit = data.unit\r\n formData.priceInSun = defaultPriceInSun.value\r\n buyForm.$form.value?.clearValidate()\r\n }\r\n\r\n const isOpenTTPay = computed(() => config.value?.base.enable_ttpay)\r\n\r\n /** 是否下载有tron钱包插件 */\r\n const isUnaddressDom = computed(() => typeof window.tronWeb === 'object' || imtoken.isImToken())\r\n\r\n const onSubmit = async () => {}\r\n\r\n const onValidate = async () => {}\r\n\r\n const payType = ref(EPaymentMethod.DAPP)\r\n\r\n const paymentMethod = computed(() => {\r\n switch (payType.value) {\r\n case EPaymentMethod.DAPP:\r\n return 'dapp'\r\n case EPaymentMethod.TTPAY:\r\n return 'ttpay'\r\n case EPaymentMethod.BALANCE:\r\n return 'balance'\r\n default:\r\n return 'dapp'\r\n }\r\n })\r\n\r\n const togglePayType = (code: number) => {\r\n payType.value = code\r\n }\r\n const { trxMoney } = useUserInfo()\r\n /** 按钮组显示条件 */\r\n const buttonGroup = reactiveComputed(() => {\r\n return {\r\n walletConnection:\r\n !toValue(isOpenTTPay)\r\n && toValue(isUnaddressDom)\r\n && !toValue(isConnected),\r\n walletConnectionToPay:\r\n toValue(payType) === EPaymentMethod.DAPP\r\n && toValue(isUnaddressDom)\r\n && !toValue(isConnected),\r\n download:\r\n toValue(payType) === EPaymentMethod.DAPP && !toValue(isUnaddressDom),\r\n pay:\r\n toValue(payType) === EPaymentMethod.TTPAY\r\n // eslint-disable-next-line style/no-mixed-operators\r\n || toValue(payType) === EPaymentMethod.BALANCE && (unref(trxMoney) ?? 0) >= toDecimalPlaces(discount.amount, 6)\r\n || (toValue(payType) === EPaymentMethod.DAPP && toValue(isConnected)),\r\n balanceTip: toValue(payType) === EPaymentMethod.BALANCE && (unref(trxMoney) ?? 0) < toDecimalPlaces(discount.amount, 6),\r\n }\r\n })\r\n\r\n const isRentDays = computed(() => formData.rentTimeUnit === 'd' && formData?.rentDuration > 1)\r\n\r\n const paymentAddress = computed(\r\n () => config.value?.wallet?.payment_c2c_address,\r\n )\r\n\r\n const bus = useEventBus('SWITCH-WALLET')\r\n\r\n // 监听钱包切换\r\n bus.on(() => {\r\n formData.receiveAddress = account.address\r\n })\r\n\r\n watchEffect(() => {\r\n formData.priceInSun = defaultPriceInSun.value\r\n })\r\n\r\n watch(isConnected, () => {\r\n formData.receiveAddress = isConnected.value ? account.address : formData.receiveAddress\r\n }, { immediate: true })\r\n\r\n watch(\r\n () => formData.resourceType,\r\n () => {\r\n buyForm.$form.value?.clearValidate()\r\n formData.resourceValue = null\r\n },\r\n )\r\n\r\n return {\r\n shortcut,\r\n changeEnergyUnit,\r\n unitPriceRange,\r\n priceRange,\r\n shortcutTime,\r\n defaultPriceInSun,\r\n formData,\r\n buyForm,\r\n chooseRentDuration,\r\n discount,\r\n onSubmit,\r\n isOpenTTPay,\r\n isUnaddressDom,\r\n onValidate,\r\n togglePayType,\r\n payType,\r\n buttonGroup,\r\n paymentAddress,\r\n paymentMethod,\r\n isRentDays,\r\n isPenNumber,\r\n otherMode,\r\n }\r\n})\r\n\r\ninterface TDiscount {\r\n fee: number\r\n amount: number\r\n save: number\r\n discount: number\r\n}\r\nexport type { TDiscount }\r\n","import { createMachine } from 'xstate'\r\nimport type { TDiscount } from '../hooks/useBuy'\r\n\r\ninterface IContext {\r\n formData: any\r\n payType: number\r\n paymentAddress: string | undefined\r\n discountInfo: TDiscount\r\n toAddress: string\r\n paymentUrl: string\r\n}\r\n\r\nexport const machine = createMachine({\r\n id: 'c2cBuyMachine',\r\n initial: 'idle',\r\n states: {\r\n 'idle': {\r\n always: {\r\n target: 'confirm',\r\n cond: 'isPc',\r\n },\r\n on: {\r\n OPEN: {\r\n target: 'confirm',\r\n },\r\n },\r\n },\r\n 'confirm': {\r\n on: {\r\n CLOSE: {\r\n target: 'idle',\r\n },\r\n BUY: {\r\n target: 'info-confirm',\r\n actions: {\r\n type: 'setInfo',\r\n },\r\n },\r\n },\r\n },\r\n 'info-confirm': {\r\n on: {\r\n PAY: [\r\n {\r\n target: 'tronlink',\r\n cond: 'isTronlink',\r\n internal: false,\r\n },\r\n {\r\n target: 'TTpay',\r\n cond: 'isTtpay',\r\n internal: false,\r\n },\r\n {\r\n target: 'Balance',\r\n cond: 'isBalance',\r\n },\r\n ],\r\n CLOSE: {\r\n target: 'confirm',\r\n },\r\n },\r\n },\r\n 'tronlink': {\r\n entry: {\r\n type: 'setInfo',\r\n },\r\n initial: 'idle',\r\n states: {\r\n 'idle': {\r\n always: {\r\n target: 'tronlink-order-precreating',\r\n },\r\n },\r\n 'tronlink-order-precreating': {\r\n invoke: {\r\n src: 'precreateTronlinkOrder',\r\n id: 'precreateTronlinkOrder',\r\n onDone: [\r\n {\r\n target: 'tronlink-create-order',\r\n },\r\n ],\r\n onError: [\r\n {\r\n target: '#c2cBuyMachine.confirm',\r\n actions: {\r\n type: 'requestError',\r\n },\r\n },\r\n ],\r\n },\r\n tags: ['request', 'tronlink-request'],\r\n },\r\n 'tronlink-create-order': {\r\n invoke: {\r\n src: 'createTronlinkOrder',\r\n id: 'createTronlinkOrder',\r\n onDone: [\r\n {\r\n target: 'tronlink-query-order',\r\n },\r\n ],\r\n onError: [\r\n {\r\n target: '#c2cBuyMachine.confirm',\r\n actions: {\r\n type: 'requestError',\r\n },\r\n },\r\n ],\r\n },\r\n tags: ['request', 'tronlink-request'],\r\n },\r\n 'tronlink-query-order': {\r\n invoke: {\r\n src: 'queryTronlinkOrder',\r\n id: 'invoke-6coj5',\r\n },\r\n tags: ['request', 'tronlink-request', 'querying-tronlink'],\r\n on: {\r\n END: {\r\n target: 'order-results',\r\n },\r\n },\r\n },\r\n 'order-results': {\r\n on: {\r\n OK: {\r\n target: '#c2cBuyMachine.idle',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n 'TTpay': {\r\n entry: {\r\n type: 'setInfo',\r\n },\r\n initial: 'idle',\r\n states: {\r\n 'idle': {\r\n always: {\r\n target: 'ttpay-create-order',\r\n },\r\n },\r\n 'ttpay-create-order': {\r\n invoke: {\r\n src: 'createTtpayOrder',\r\n id: 'createTtpayOrder',\r\n onDone: [\r\n {\r\n target: 'ttpay-query-order',\r\n actions: [\r\n {\r\n type: 'toPayment',\r\n },\r\n {\r\n type: 'setPayment',\r\n },\r\n ],\r\n },\r\n ],\r\n onError: [\r\n {\r\n target: '#c2cBuyMachine.confirm',\r\n actions: {\r\n type: 'requestError',\r\n },\r\n },\r\n ],\r\n },\r\n tags: ['request', 'ttpay-request'],\r\n },\r\n 'ttpay-query-order': {\r\n invoke: {\r\n src: 'queryTtpayOrder',\r\n id: 'invoke-5co6c',\r\n },\r\n tags: ['request', 'ttpay-request', 'querying-ttpay'],\r\n on: {\r\n END: {\r\n target: 'order-results',\r\n },\r\n STOP: {\r\n target: '#c2cBuyMachine.idle',\r\n },\r\n KEEP: {\r\n actions: {\r\n type: 'toPayment',\r\n },\r\n internal: true,\r\n },\r\n },\r\n },\r\n 'order-results': {\r\n on: {\r\n OK: {\r\n target: '#c2cBuyMachine.idle',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n 'Balance': {\r\n initial: 'idle',\r\n states: {\r\n 'idle': {\r\n always: {\r\n target: 'balance-create-order',\r\n },\r\n },\r\n 'balance-create-order': {\r\n invoke: {\r\n src: 'createBalanceOrder',\r\n id: 'createBalanceOrder',\r\n onError: [\r\n {\r\n target: '#c2cBuyMachine.info-confirm',\r\n },\r\n ],\r\n onDone: [\r\n {\r\n target: 'order-results',\r\n },\r\n ],\r\n },\r\n tags: [\r\n 'request',\r\n 'balance-request',\r\n ],\r\n },\r\n 'order-results': {\r\n on: {\r\n OK: {\r\n target: '#c2cBuyMachine.idle',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n schema: {\r\n events: {} as\r\n | {\r\n type: 'PAY'\r\n formData: any\r\n paymentAddress: string\r\n discountInfo: any\r\n payType: number\r\n toAddress: string\r\n data: any\r\n paymentMethod: 'dapp' | 'ttpay' | 'balance'\r\n }\r\n | {\r\n type: 'OPEN'\r\n formData?: any\r\n paymentAddress?: string\r\n discountInfo?: any\r\n payType?: number\r\n toAddress?: string\r\n data?: any\r\n paymentMethod?: 'dapp' | 'ttpay' | 'balance'\r\n }\r\n | {\r\n type: 'CLOSE'\r\n formData?: any\r\n paymentAddress?: string\r\n discountInfo?: any\r\n payType?: number\r\n toAddress?: string\r\n data?: any\r\n paymentMethod?: 'dapp' | 'ttpay' | 'balance'\r\n } | {\r\n type: 'BUY'\r\n formData?: any\r\n paymentAddress?: string\r\n discountInfo?: any\r\n payType?: number\r\n toAddress?: string\r\n data?: any\r\n paymentMethod?: 'dapp' | 'ttpay' | 'balance'\r\n }\r\n | {\r\n type: 'END'\r\n formData?: any\r\n paymentAddress?: string\r\n discountInfo?: any\r\n payType?: number\r\n toAddress?: string\r\n data?: any\r\n paymentMethod?: 'dapp' | 'ttpay' | 'balance'\r\n }\r\n | {\r\n type: 'OK'\r\n formData?: any\r\n paymentAddress?: string\r\n discountInfo?: any\r\n payType?: number\r\n toAddress?: string\r\n data?: any\r\n paymentMethod?: 'dapp' | 'ttpay' | 'balance'\r\n }\r\n | {\r\n type: 'KEEP'\r\n formData?: any\r\n paymentAddress?: string\r\n discountInfo?: any\r\n payType?: number\r\n toAddress?: string\r\n data?: any\r\n paymentMethod?: 'dapp' | 'ttpay' | 'balance'\r\n } | {\r\n type: 'STOP'\r\n formData?: any\r\n paymentAddress?: string\r\n discountInfo?: any\r\n payType?: number\r\n toAddress?: string\r\n data?: any\r\n paymentMethod?: 'dapp' | 'ttpay' | 'balance'\r\n },\r\n },\r\n predictableActionArguments: true,\r\n preserveActionOrder: true,\r\n context: ({} as unknown) as IContext,\r\n tsTypes: {} as import('./c2cBuyMachine.typegen').Typegen0,\r\n})\r\n","import {\r\n createInjectionState,\r\n reactiveComputed,\r\n useTimeoutPoll,\r\n} from '@vueuse/core'\r\nimport { actions } from 'xstate'\r\nimport { useMachine } from '@xstate/vue'\r\nimport { snakeCase } from 'lodash'\r\nimport { useAppBreakpoints } from '@peng_kai/theme/vue/index'\r\nimport { machine as c2cBuylMachine } from './c2cBuyMachine'\r\nimport { tron } from '~/utils/tron-v2'\r\nimport { extractContentInBrackets, jumpCompatible } from '~/utils'\r\nimport { formatTronErrorMessage } from '~/utils/tron-v2/tronError'\r\n\r\nexport const [useC2cBuyMachineProvide, useC2cBuyMachine] = createInjectionState(\r\n () => {\r\n const queryTronlinkOrder = ref()\r\n const queryTtpayOrder = ref()\r\n const rentalInformation = ref()\r\n const bp = useAppBreakpoints()\r\n const { account } = tronComp.useAccountCurrent()\r\n\r\n const machine = useMachine(c2cBuylMachine, {\r\n actions: {\r\n // todo tron的提示和api请求的提示不应该放一起的,这里不走tronError 错误处理,后期需要统一\r\n requestError: (ctx, ev) => {\r\n if (ev.data instanceof Error) {\r\n if (ev.data.message.includes('balance is not sufficient') || ev.data.message.includes('Tapos check error') || ev.data.message.includes('Account resource insufficient error'))\r\n aMessage.error($t('tm41OUsNwS4B7IkB1jey'))\r\n else if (ev.data.message.includes('Confirmation declined by user') || ev.data.message.includes('cancel') || ev.data.message.includes('cancle') || ev.data.message.includes('取消') || ev.data.message.includes('拒绝'))\r\n aMessage.error($t('Hk5eWgjl88eEeU0VPuaRz'))\r\n else if (ev.data.message.includes('Validate TransferContract error, no OwnerAccount'))\r\n aMessage.error($t('fiNURjHwnMnPYh48lYi'))\r\n else if (ev.data.message.includes('does not exist'))\r\n aMessage.error(`${extractContentInBrackets(ev.data.message)} ${$t('AUdgXSOOMymyhIWK9Mg1A')}`)\r\n else\r\n aMessage.error(ev.data.message)\r\n }\r\n },\r\n\r\n toPayment: (ctx, ev) => {\r\n const { data } = ev as any\r\n if (ev.type === 'KEEP') {\r\n if (bp.ltLaptop)\r\n location.href = ctx.paymentUrl\r\n else\r\n window.open(ctx.paymentUrl, '_blank')\r\n }\r\n else if (ev.type === 'done.invoke.createTtpayOrder') {\r\n jumpCompatible($t('rVh4iCmGnClYuxNyVNn6', { url: data.payment_url, href: encodeURIComponent(window.location.href) }))\r\n }\r\n },\r\n\r\n setPayment: actions.assign((ctx, ev) => {\r\n const link\r\n = `${ev.data?.payment_url\r\n }&return_url=${\r\n encodeURIComponent(window.location.href)}`\r\n return {\r\n paymentUrl: link,\r\n }\r\n }),\r\n\r\n setInfo: actions.assign((ctx, ev) => {\r\n if (ev.type === 'BUY') {\r\n rentalInformation.value = ev\r\n return {\r\n formData: ev.formData,\r\n paymentAddress: ev.paymentAddress,\r\n discountInfo: ev.discountInfo,\r\n toAddress: ev.toAddress,\r\n }\r\n }\r\n\r\n if (ev.type === 'PAY') {\r\n return {\r\n toAddress: ev.toAddress,\r\n }\r\n }\r\n\r\n return {}\r\n }),\r\n },\r\n services: {\r\n /** dapp支付流程 开始 */\r\n precreateTronlinkOrder: async (ctx, ev) => {\r\n try {\r\n const params = {\r\n amount: toDecimalPlaces(ctx.discountInfo.amount, 6),\r\n toAddress: ctx.paymentAddress,\r\n fromAddress: ctx.toAddress,\r\n }\r\n const res = await tron.payTRXServerBroadcast(params)\r\n\r\n if (res)\r\n return res\r\n }\r\n catch (e) {\r\n // 兼容imtoken取消时不一样的返回信息\r\n const msg = formatTronErrorMessage(e)\r\n throw new Error(msg)\r\n }\r\n },\r\n createTronlinkOrder: async (ctx, ev) => {\r\n try {\r\n const data:\r\n | Api.GetParam['requestBody']\r\n | { [key: string]: string | number } = {}\r\n\r\n for (const key in ctx.formData)\r\n data[snakeCase(key)] = ctx.formData[key]\r\n\r\n data.signed_txn = ev.data\r\n data.resource_value = Number(data.resource_value)\r\n\r\n return await apis.orderCreateC2C({\r\n requestBody: data,\r\n }, { errorMessageMode: 'none' })\r\n }\r\n catch (e) {\r\n throw new Error(e.msg)\r\n }\r\n },\r\n queryTronlinkOrder: (ctx, ev) => async (callback) => {\r\n let second = 0\r\n while (second <= 15) {\r\n try {\r\n await sleep(2000)\r\n second++\r\n const res = await apis.orderQuery(\r\n {\r\n order_no: ev.data.order_no,\r\n trx_address: ev.data.pay_address,\r\n },\r\n { errorMessageMode: 'none' },\r\n )\r\n if (res) {\r\n queryTronlinkOrder.value = {\r\n code: res.status,\r\n status: 'success',\r\n }\r\n callback({ type: 'END' })\r\n break\r\n }\r\n }\r\n catch (e) {\r\n if (e.code !== 17019) {\r\n // 其他异常\r\n queryTronlinkOrder.value = {\r\n code: e.code,\r\n status: 'fail',\r\n }\r\n callback({ type: 'END' })\r\n throw new Error('')\r\n }\r\n }\r\n }\r\n },\r\n /** dapp支付流程 结束 */\r\n\r\n /** ttpay支付流程 开始 */\r\n createTtpayOrder: async (ctx, ev) => {\r\n const data:\r\n | Api.GetParam['requestBody']\r\n | { [key: string]: string | number } = {}\r\n\r\n data.pay_amount = toDecimalPlaces(ctx.discountInfo.amount, 6)\r\n\r\n for (const key in ctx.formData)\r\n data[snakeCase(key)] = ctx.formData[key]\r\n\r\n return await apis.ttpayOrderC2C({ requestBody: data }, { errorMessageMode: 'none' })\r\n },\r\n queryTtpayOrder: (ctx, ev) => (callback) => {\r\n const { out_trade_no } = ev.data as any\r\n const startTime = Date.now()\r\n const limtTime = 10 * 60 * 1000\r\n\r\n const { resume, pause } = useTimeoutPoll(async () => {\r\n if (Date.now() - startTime > limtTime) {\r\n pause()\r\n queryTtpayOrder.value = {\r\n code: 0,\r\n status: 'fail',\r\n }\r\n callback({ type: 'END' })\r\n return\r\n }\r\n\r\n // 接口请求和结果处理\r\n const res = await apis.orderQuery(\r\n { order_no: out_trade_no },\r\n {\r\n errorMessageMode: 'none',\r\n resultType: 'api',\r\n checkCode: false,\r\n },\r\n )\r\n if (res.code === 0) {\r\n queryTtpayOrder.value = {\r\n code: res.data?.status,\r\n status: 'success',\r\n }\r\n callback({ type: 'END' })\r\n }\r\n\r\n if (res.code !== 17019 && res.code !== 0) {\r\n queryTtpayOrder.value = {\r\n code: res.code,\r\n status: 'fail',\r\n }\r\n callback({ type: 'END' })\r\n }\r\n }, 2000)\r\n\r\n resume()\r\n return () => pause()\r\n },\r\n /** ttpay支付流程 结束 */\r\n\r\n /** 余额支付流程 开始 */\r\n createBalanceOrder: async (ctx) => {\r\n // 请求接口\r\n try {\r\n const data:\r\n | Api.GetParam['requestBody']\r\n | { [key: string]: string | number } = {}\r\n for (const key in ctx.formData)\r\n data[snakeCase(key)] = ctx.formData[key]\r\n\r\n return await apis.apiOrderCreateOrderByBalance({ requestBody: { ...data, order_type: 2, pay_amount: toDecimalPlaces(ctx.discountInfo.amount, 6) } })\r\n }\r\n catch (e) {\r\n throw new Error(e)\r\n }\r\n },\r\n /** 余额支付流程 结束 */\r\n\r\n },\r\n guards: {\r\n isTronlink: (ctx, ev) => {\r\n return ev.paymentMethod === 'dapp'\r\n },\r\n isTtpay: (context, ev) => {\r\n return ev.paymentMethod === 'ttpay'\r\n },\r\n isBalance: (context, ev) => {\r\n console.log('guards', ev.paymentMethod === 'balance')\r\n return ev.paymentMethod === 'balance'\r\n },\r\n isPc: (context, event) => {\r\n return bp.laptopl\r\n },\r\n },\r\n delays: {},\r\n })\r\n\r\n const states = reactiveComputed(() => {\r\n const s = machine.state.value\r\n\r\n const isConfirm = s.matches('confirm')\r\n const isInfoConfirm = s.matches('info-confirm')\r\n const isIdle = s.matches('idle')\r\n const isTronlinkOrderResults = s.matches('tronlink.order-results')\r\n const isTtpayOrderResults = s.matches('TTpay.order-results')\r\n const isBalanceResults = s.matches('Balance.order-results')\r\n const isTtpayQueryOrder = s.matches('TTpay.ttpay-query-order')\r\n const isRequest = s.hasTag('request')\r\n const isQueryingTtpay = s.hasTag('querying-ttpay')\r\n const isRefresh = s.event.type === 'OK'\r\n const requesting = s.hasTag('tronlink-request') || s.hasTag('ttpay-request') || s.hasTag('balance-request')\r\n\r\n return {\r\n isConfirm,\r\n isInfoConfirm,\r\n isTtpayQueryOrder,\r\n isIdle,\r\n isTronlinkOrderResults,\r\n isTtpayOrderResults,\r\n isRequest,\r\n isQueryingTtpay,\r\n isRefresh,\r\n isBalanceResults,\r\n requesting,\r\n }\r\n })\r\n\r\n return {\r\n machine,\r\n states,\r\n queryTronlinkOrder,\r\n rentalInformation,\r\n queryTtpayOrder,\r\n }\r\n },\r\n)\r\n","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n {})\r\n \"\r\n />\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
{{ formData.rentDuration }}
\r\n\r\n \r\n {{ timeSecondFilters(formData.rentTimeSecond) }}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n {{ $t(\"MdLWMNeCJsOrXnrrrWLgX\") }}\r\n \r\n {{ formatAmount(formData.resourceValue, 0) }}\r\n {{ $t(ResourceType[formData.resourceType].label) }}\r\n ,\r\n {{ timeFn(formData.rentDuration, formData.rentTimeUnit) }}\r\n \r\n
\r\n
\r\n {{ $t(\"5lDjHyMvhDv34o9QihLy\") }}\r\n \r\n \r\n {{ formatAmount(discountInfo.needBurning, 6) }} TRX\r\n \r\n\r\n {{ formatAmount(discountInfo.amount, 6) }} TRX\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n \r\n {{ $t(\"hAns2WaHjEPbTgBxlqXn\") }}\r\n \r\n \r\n {{ $t(\"cT9bJuYfJKoIN0Skkp84T\") }}\r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n\r\n\r\n","import { createInjectionState } from '@vueuse/core'\r\nimport { tron, tronErrors } from '~/utils/tron-v2'\r\n\r\nexport const [useMultiSignProvider, useMultiSign] = createInjectionState(() => {\r\n const info = reactive({ isOwnerPermission: false, permissionId: 0 })\r\n\r\n const addressMuktiSign = ref('')\r\n\r\n const { account: accountCurrent } = tronComp.useAccountCurrent()\r\n const { account: accountMultiSign } = tronComp.useAccount(\r\n addressMuktiSign,\r\n toRef(accountCurrent, 'chainId'),\r\n )\r\n\r\n /**\r\n * 验证多签是否有权限\r\n */\r\n const onValidatePower = (isMultiSign: boolean | Ref, id: number) => {\r\n if (!toValue(isMultiSign))\r\n return\r\n info.isOwnerPermission = false\r\n info.permissionId = 0\r\n const {\r\n owner_permission: ownerPermission,\r\n active_permission: activePermission,\r\n } = accountMultiSign\r\n console.log('ownerPermission',ownerPermission);\r\n console.log('activePermission',activePermission);\r\n if (!ownerPermission || !activePermission)\r\n info.isOwnerPermission = false\r\n \r\n if(ownerPermission.threshold > 1){\r\n info.isOwnerPermission = ownerPermission.keys.some((i:any)=> (i.address === tron.tronWeb?.address.toHex(accountCurrent.address) && i.weight === ownerPermission.threshold))\r\n }else if(ownerPermission.threshold === 1) {\r\n info.isOwnerPermission = ownerPermission.keys.some((i:any)=> (i.address === tron.tronWeb?.address.toHex(accountCurrent.address)))\r\n }\r\n \r\n\r\n if (!info.isOwnerPermission) {\r\n activePermission?.forEach((item:any) => {\r\n item.keys.forEach((i:any)=>{\r\n if(item.threshold > 1){\r\n if(i.weight === item.threshold && i.address === tron.tronWeb?.address.toHex(accountCurrent.address) && tron.getPermission(item.operations, id)){\r\n info.permissionId = item.id\r\n }\r\n }\r\n \r\n if(item.threshold === 1){\r\n if(i.address === tron.tronWeb?.address.toHex(accountCurrent.address) && tron.getPermission(item.operations, id)){\r\n info.permissionId = item.id\r\n }\r\n }\r\n })\r\n \r\n })\r\n\r\n if (!info.permissionId)\r\n throw tronErrors.MULTISIGN_ERROR()\r\n }\r\n }\r\n\r\n const setAddress = (address: string) => {\r\n if (!tron.isAddress(address))\r\n return\r\n addressMuktiSign.value = address\r\n }\r\n\r\n return {\r\n info,\r\n onValidatePower,\r\n setAddress,\r\n }\r\n})\r\n\r\n\r\n","import { createInjectionState } from '@vueuse/core'\r\n\r\nexport const [useSellProvider, useSell] = createInjectionState((is: Ref, address: Ref) => {\r\n const isMultiSign = ref(is)\r\n const multiSingAddress = ref(address)\r\n const muktiSignResources = reactive({\r\n energy: 0,\r\n bandwidth: 0,\r\n balance: 0,\r\n })\r\n\r\n const { account: accountCurrent } = tronComp.useAccountCurrent()\r\n const { account: accountMultiSign } = tronComp.useAccount(\r\n multiSingAddress,\r\n toRef(accountCurrent, 'chainId'),\r\n )\r\n\r\n const setMultiSingAddress = (address: string) => {\r\n multiSingAddress.value = address\r\n }\r\n\r\n const remaineResource = computed(() => {\r\n const info = {\r\n ENERGY: 0,\r\n BANDWIDTH: 0,\r\n };\r\n\r\n // 只判断当前钱包有没有钱会导致,当前钱包没钱而多签钱包有钱而那不到\r\n const { delegable } = accountCurrent;\r\n const { delegable: delegableMulti } = accountMultiSign;\r\n\r\n if (!delegable && !delegableMulti)\r\n return info;\r\n\r\n const energyUnitPrice = toValue(isMultiSign) ? accountMultiSign.resource.energyUnitPrice : accountCurrent.resource.energyUnitPrice;\r\n const netUnitPrice = toValue(isMultiSign) ? accountMultiSign.resource.netUnitPrice : accountCurrent.resource.netUnitPrice;\r\n\r\n const canDelegatedBalanceForEnergy = toValue(isMultiSign)\r\n ? toRef(muktiSignResources, 'energy')\r\n : toRef(delegable, 'energy');\r\n\r\n info.ENERGY = Math.floor(\r\n (canDelegatedBalanceForEnergy.value ?? 0)\r\n * 10 ** -6,\r\n )\r\n * energyUnitPrice;\r\n\r\n const canDelegatedBalanceForBandwidth = toValue(isMultiSign)\r\n ? toRef(muktiSignResources.bandwidth)\r\n : toRef(delegable, 'bandwidth');\r\n\r\n info.BANDWIDTH = Math.floor(\r\n (canDelegatedBalanceForBandwidth.value ?? 0)\r\n * 10 ** -6,\r\n )\r\n * netUnitPrice;\r\n\r\n info.ENERGY = Math.floor(info.ENERGY ?? 0);\r\n info.BANDWIDTH = Math.floor(info.BANDWIDTH ?? 0);\r\n\r\n return info;\r\n });\r\n\r\n const balance = computed(() => {\r\n return toValue(isMultiSign) ? muktiSignResources.balance : accountCurrent.balanceTrx\r\n })\r\n\r\n watchEffect(() => {\r\n if (accountMultiSign) {\r\n muktiSignResources.energy = accountMultiSign?.delegable?.energy ?? 0\r\n muktiSignResources.bandwidth = accountMultiSign?.delegable?.bandwidth ?? 0\r\n muktiSignResources.balance = accountMultiSign.balanceTrx ?? 0\r\n }\r\n })\r\n\r\n return {\r\n setMultiSingAddress,\r\n remaineResource,\r\n balance,\r\n }\r\n})\r\n","import type { IProps } from '../FreezePopup.vue'\r\nimport type { TronRes } from '~/utils/tron-v2'\r\nimport { tron } from '~/utils/tron-v2'\r\nimport { useResource } from '~/composables/tron'\r\nimport { useMultiSign } from '~/pages-components/c2c/hooks/useMultiSign'\r\nimport { useSellProvider } from '~/pages-components/c2c/hooks/useSell'\r\nimport { formatTronErrorMessage } from '~/utils/tron-v2/tronError'\r\n\r\nconst { resourceType: ResourceType } = useResource()\r\nexport function useFreeze(props: IProps) {\r\n const { orderDetail } = props.detail\r\n const isMultiSign = computed(() => !!props?.detail.multiAddress)\r\n const loading = useBoolean()\r\n const freezeResult = ref(false)\r\n const modalContent = ref('')\r\n const { onValidatePower, info } = useMultiSign()!\r\n const {\r\n remaineResource,\r\n balance,\r\n } = useSellProvider(isMultiSign, toRef(props.detail, 'multiAddress'))\r\n\r\n const { account: accountCurrent, refetch } = tronComp.useAccountCurrent()\r\n const { account: accountMulti, refetch: multiRefetch } = tronComp.useAccount(\r\n toRef(props.detail, 'multiAddress'),\r\n toRef(accountCurrent, 'chainId'),\r\n )\r\n\r\n const title = computed(() => {\r\n const map: { [kye: string]: string } = {\r\n '1_0': $t('RRvYluqPaPRe7eGmbayQY'),\r\n '1_1': $t('jEGkLIlIEyQ-oCW7UVmAB'),\r\n '0_0': $t('GBYT0K-9f4v2Bl8fZvbsB'),\r\n '0_1': $t('n5OmlOh-IeEaUjNkslgT2'),\r\n }\r\n const key = `${toValue(isMultiSign) ? 1 : 0}_${props?.detail.mode}`\r\n return map[key]\r\n })\r\n\r\n const maxTRX = computed(() => {\r\n const trx = ((balance.value ?? 0) / 1000000) - 1\r\n return trx > 0 ? trx : 0\r\n })\r\n\r\n const setMaxTrx = () => {\r\n if (!maxTRX.value)\r\n return\r\n formData.amount = Math.floor(maxTRX.value)\r\n onChange(formData.amount)\r\n }\r\n\r\n const resourceType = computed(() =>\r\n orderDetail?.resource_type ? 'ENERGY' : 'BANDWIDTH',\r\n )\r\n\r\n const freezeInfo = reactive({\r\n availableResource: 0,\r\n needResource: props.detail.sellAmount,\r\n })\r\n\r\n const formData = reactive({\r\n amount: undefined,\r\n resource: 'ENERGY' as 'BANDWIDTH' | 'ENERGY',\r\n })\r\n\r\n const needExchange = computed(() => {\r\n const remaine = toValue(remaineResource)[resourceType.value]\r\n const result\r\n = freezeInfo.needResource - remaine - freezeInfo.availableResource\r\n\r\n return result > 0 ? result : 0\r\n })\r\n\r\n const onChange = (e: any) => {\r\n const { resource } = accountCurrent\r\n const cost\r\n = resourceType.value === 'ENERGY'\r\n ? resource?.energyUnitPrice\r\n : resource?.netUnitPrice\r\n freezeInfo.availableResource = Math.floor(e * cost)\r\n }\r\n\r\n function validator() {\r\n return new Promise((resolve, reject) => {\r\n if (!formData.amount) {\r\n aMessage.info($t('APfc3MeEIDjqXLApadbAz'))\r\n reject()\r\n }\r\n\r\n if ((formData.amount ?? 0) > maxTRX.value) {\r\n aMessage.error(\r\n `${$t('38ytZ0y25yoOxKMOvq1o8')} ${formatAmount(maxTRX.value, 0)} TRX ${$t('OSICXBRWyZAISpFNxEdll')}`,\r\n )\r\n reject()\r\n }\r\n\r\n resolve(true)\r\n })\r\n }\r\n\r\n const onSubmit = async () => {\r\n try {\r\n await validator()\r\n\r\n onValidatePower(isMultiSign, 54)\r\n\r\n loading.setTrue()\r\n\r\n let params: any = {\r\n amount: (formData.amount ?? 0) * 10 ** 6,\r\n resourceType: toValue(resourceType),\r\n address: accountCurrent.address,\r\n }\r\n let res = null\r\n if (toValue(isMultiSign)) {\r\n params = {\r\n ...params,\r\n address: accountMulti.address,\r\n isOwnerPermission: info.isOwnerPermission,\r\n permissionId: info.permissionId,\r\n }\r\n res = await tron.freezeBalanceV2ByMultiSign(params)\r\n }\r\n else {\r\n res = await tron.freezeBalanceV2(params)\r\n }\r\n\r\n tron.fetchCanDelegatedMaxSize(accountCurrent.address, 0 as TronRes)\r\n tron.fetchCanDelegatedMaxSize(accountCurrent.address, 1 as TronRes)\r\n\r\n if (res) {\r\n await refetch()\r\n await multiRefetch()\r\n const typeTxt = params.resourceType === 'ENERGY' ? $t('Mqe_hlD_yGPsAMB9oaO1D') : $t('IgN1EoVRFTDyCVLbFG-oT')\r\n modalContent.value = `${$t('JVJZwWrDZaWCpXUvy7eYn', { amount: formatAmount(params.amount * 10 ** -6, 0) })}\r\n ${$t('NKsQg2au3bN_T6s8bA0tY', { typeTxt })}\r\n ${formatAmount(freezeInfo.availableResource, 0)}`\r\n freezeResult.value = true\r\n }\r\n else {\r\n aMessage.error($t('vXcbCo5Z9Xx0PhQvMopAR'))\r\n }\r\n loading.setFalse()\r\n }\r\n catch (e) {\r\n loading.setFalse()\r\n if (typeof e === 'string') {\r\n if (e.includes('Confirmation declined by user'))\r\n aMessage.error($t('Hk5eWgjl88eEeU0VPuaRz'))\r\n\r\n else if (e.includes('but it is not contained of permission'))\r\n aMessage.error($t('XaVJJSbJsBZJUCo6UjiOh'))\r\n\r\n else if (e.includes('frozenBalance must be more than 1TRX'))\r\n aMessage.error($t('xIc755xgV4BzHc55RSuf'))\r\n\r\n else if (e.includes('TRANSACTION_EXPIRATION_ERROR'))\r\n aMessage.error($t('iEe52eGjGSr0BiehkAtdb'))\r\n else\r\n aMessage.error(e)\r\n }\r\n\r\n if (e instanceof Error) {\r\n const msg = formatTronErrorMessage(e)\r\n aMessage.error(msg)\r\n }\r\n }\r\n }\r\n\r\n return {\r\n isMultiSign,\r\n title,\r\n maxTRX,\r\n setMaxTrx,\r\n freezeInfo,\r\n formData,\r\n needExchange,\r\n onChange,\r\n onSubmit,\r\n resourceType,\r\n loading,\r\n remaineResource,\r\n freezeResult,\r\n modalContent,\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { createMachine } from 'xstate'\r\n\r\ninterface ImultiSignIfo {\r\n isOwnerPermission: boolean\r\n permissionId: number\r\n}\r\n\r\ninterface IContext {\r\n orderDetail: Api.GetDataItem\r\n ownerAddress: string\r\n resourceValue: number\r\n settleAddress: string\r\n frozenBalance: number\r\n skipDuplicateCheck: number\r\n orderPreSubmitCode: number\r\n multiSignIfo: ImultiSignIfo\r\n isMultiSign: Ref | boolean\r\n resourceType: string\r\n lockPeriod: number\r\n}\r\n\r\nexport const machine = createMachine({\r\n id: 'C2cSellMachine',\r\n initial: 'idle',\r\n states: {\r\n idle: {\r\n entry: {\r\n type: 'init',\r\n },\r\n on: {\r\n OPEN: {\r\n target: 'confirm',\r\n },\r\n },\r\n },\r\n confirm: {\r\n tags: 'confirm',\r\n entry: {\r\n type: 'resetting',\r\n },\r\n on: {\r\n CLOSE: {\r\n target: 'idle',\r\n },\r\n SUBMIT: {\r\n target: 'FetchOrderPredelegete',\r\n actions: {\r\n type: 'setInfo',\r\n },\r\n },\r\n DOUBLECHEC: {\r\n target: 'FetchOrderPredelegete',\r\n actions: {\r\n type: 'setInfo',\r\n },\r\n },\r\n },\r\n },\r\n FetchOrderPredelegete: {\r\n invoke: {\r\n src: 'fetchOrderPredelegete',\r\n id: 'fetchOrderPredelegete',\r\n onDone: [\r\n {\r\n target: 'fetchDelegateResourceSign',\r\n cond: 'hasOrderRes',\r\n },\r\n {\r\n target: 'fetchdelegateResourceServerBroadcast',\r\n },\r\n ],\r\n onError: [\r\n {\r\n target: 'confirm',\r\n cond: 'isConflict',\r\n actions: [\r\n {\r\n type: 'preRequestError',\r\n },\r\n {\r\n type: 'showErrorMessage',\r\n },\r\n ],\r\n internal: false,\r\n },\r\n {\r\n target: 'conflict',\r\n },\r\n ],\r\n },\r\n tags: 'request',\r\n },\r\n fetchDelegateResourceSign: {\r\n invoke: {\r\n src: 'fetchDelegateResourceSign',\r\n id: 'fetchDelegateResourceSign',\r\n onDone: [\r\n {\r\n target: 'orderDelegateC2C',\r\n },\r\n ],\r\n onError: [\r\n {\r\n target: 'confirm',\r\n actions: {\r\n type: 'showErrorMessage',\r\n },\r\n },\r\n ],\r\n },\r\n tags: 'request',\r\n },\r\n fetchdelegateResourceServerBroadcast: {\r\n invoke: {\r\n src: 'fetchdelegateResourceServerBroadcast',\r\n id: 'fetchdelegateResourceServerBroadcast',\r\n onDone: [\r\n {\r\n target: 'orderDelegateC2C',\r\n },\r\n ],\r\n onError: [\r\n {\r\n target: 'confirm',\r\n actions: {\r\n type: 'showErrorMessage',\r\n },\r\n },\r\n ],\r\n },\r\n tags: 'request',\r\n },\r\n conflict: {\r\n on: {\r\n OK: {\r\n target: 'idle',\r\n },\r\n },\r\n },\r\n orderDelegateC2C: {\r\n invoke: {\r\n src: 'orderDelegateC2C',\r\n id: 'orderDelegateC2C',\r\n onDone: [\r\n {\r\n target: 'orderQuery',\r\n },\r\n ],\r\n onError: [\r\n {\r\n target: \"confirm\",\r\n actions: {\r\n type: \"showErrorMessage\",\r\n },\r\n cond: 'isConflict',\r\n },\r\n {\r\n target: \"conflict\",\r\n actions: {\r\n type: \"showErrorMessage\",\r\n },\r\n },\r\n ],\r\n },\r\n tags: 'request',\r\n },\r\n orderQuery: {\r\n invoke: {\r\n src: 'orderQuery',\r\n id: 'orderQuery',\r\n onDone: [\r\n {\r\n target: 'onShowSellSuccessModal',\r\n actions: {\r\n type: 'orderQuerySuccess',\r\n },\r\n },\r\n ],\r\n onError: [\r\n {\r\n target: 'onShowSellFailModal',\r\n },\r\n ],\r\n },\r\n tags: ['orderQuerying', 'request'],\r\n },\r\n onShowSellSuccessModal: {\r\n tags: ['sellSuccess', 'orderQueryResult'],\r\n on: {\r\n OK: {\r\n target: 'idle',\r\n },\r\n },\r\n },\r\n onShowSellFailModal: {\r\n tags: ['sellFail', 'orderQueryResult'],\r\n on: {\r\n OK: {\r\n target: 'idle',\r\n },\r\n },\r\n },\r\n },\r\n schema: {\r\n events: {} as\r\n | { type: 'OK' }\r\n | { type: 'OPEN' }\r\n | { type: 'CLOSE' }\r\n | { type: 'DOUBLECHEC', skipDuplicateCheck: number }\r\n | {\r\n type: 'SUBMIT'\r\n orderDetail: Api.GetDataItem\r\n ownerAddress: string\r\n resourceValue: number\r\n settleAddress: string\r\n frozenBalance: number\r\n skipDuplicateCheck: number\r\n multiSignIfo: ImultiSignIfo\r\n isMultiSign: boolean | Ref\r\n resourceType: string\r\n },\r\n },\r\n predictableActionArguments: true,\r\n preserveActionOrder: true,\r\n context: ({} as unknown) as IContext,\r\n tsTypes: {} as import('./c2cSellMachine.typegen').Typegen0,\r\n})\r\n","import { createInjectionState, reactiveComputed } from '@vueuse/core'\r\nimport { actions } from 'xstate'\r\nimport { useMachine } from '@xstate/vue'\r\nimport { machine as c2cSellMachine } from './c2cSellMachine'\r\nimport { TronRes, tron } from '~/utils/tron-v2'\r\n\r\nexport const [\r\n useC2cSellMachineProvide,\r\n useC2cSellMachine,\r\n] = createInjectionState(() => {\r\n const machine = useMachine(c2cSellMachine, {\r\n actions: {\r\n init: actions.assign((ctx, ev) => {\r\n return {\r\n orderPreSubmitCode: 0,\r\n }\r\n }),\r\n resetting: actions.assign((ctx, ev) => {\r\n if (ev.type === 'OPEN') {\r\n return {\r\n orderPreSubmitCode: 0,\r\n }\r\n }\r\n return {}\r\n }),\r\n\r\n showErrorMessage: (context, event: any) => {\r\n const { data } = event\r\n if (event.type === 'error.platform.fetchOrderPredelegete') {\r\n if (data.code === 12008 || data.code === 12001 || data.code === 12006)\r\n return;\r\n else\r\n aMessage.error(data.msg);\r\n }\r\n if (event.type === 'error.platform.orderDelegateC2C') {\r\n if (data.code === 11000 && data.msg.includes('sig error')){\r\n aMessage.error($t('h3Ek4FbetwagbAzh95fRj'))\r\n }else\r\n aMessage.error(data.msg);\r\n }\r\n },\r\n\r\n preRequestError: actions.assign((context, event) => {\r\n return { orderPreSubmitCode: event?.data.code }\r\n }),\r\n\r\n orderQuerySuccess: actions.assign((ctx, ev) => {\r\n return {\r\n orderQueryRes: ev.data,\r\n }\r\n }),\r\n\r\n setInfo: actions.assign((ctx, ev) => {\r\n if (ev.type === 'SUBMIT') {\r\n let lockPeriod = 0\r\n if (ev.orderDetail.rent_time_unit === 'd')\r\n lockPeriod = (ev.orderDetail.rent_duration * 86400) / 3\r\n else if (ev.orderDetail.rent_time_unit === 'h')\r\n lockPeriod = (ev.orderDetail.rent_duration * 3600) / 3\r\n\r\n return {\r\n orderDetail: ev.orderDetail,\r\n ownerAddress: ev.ownerAddress,\r\n resourceValue: ev.resourceValue,\r\n settleAddress: ev.settleAddress,\r\n frozenBalance: ev.frozenBalance,\r\n skipDuplicateCheck: ev.skipDuplicateCheck,\r\n orderPreSubmitCode: 0,\r\n multiSignIfo: ev.multiSignIfo,\r\n isMultiSign: ev.isMultiSign,\r\n lockPeriod,\r\n resourceType: ev.resourceType,\r\n }\r\n }\r\n\r\n if (ev.type === 'DOUBLECHEC') {\r\n return {\r\n skipDuplicateCheck: ev.skipDuplicateCheck,\r\n }\r\n }\r\n\r\n return {}\r\n }),\r\n\r\n },\r\n services: {\r\n // 预下单\r\n fetchOrderPredelegete: async (ctx, ev) => {\r\n const res = await apis.orderPreDelegateC2C(\r\n {\r\n requestBody: {\r\n order_no: ctx.orderDetail.order_no,\r\n owner_address: ctx.ownerAddress,\r\n resource_type: ctx.orderDetail.resource_type,\r\n resource_value: ctx.resourceValue,\r\n frozen_balance: ctx.frozenBalance,\r\n permission_id: ctx.multiSignIfo.permissionId,\r\n skip_duplicate_check: ctx.skipDuplicateCheck,\r\n },\r\n },\r\n { errorMessageMode: 'none' },\r\n )\r\n return res\r\n },\r\n\r\n // 拉起签名\r\n fetchDelegateResourceSign: async (ctx, ev: any) => {\r\n const options = ctx.orderDetail.resource_type === TronRes.BANDWIDTH ? { estimatedBandwidth: String(ctx.resourceValue) } : { estimatedEnergy: String(ctx.resourceValue) }\r\n try {\r\n const sign = await tron.getDelegateResourceSign({\r\n c2CPreDelegateResp: { ...ev.data, __options: options },\r\n isMultiSign: toValue(ctx.isMultiSign),\r\n permissionId: ctx.multiSignIfo.permissionId,\r\n isOwnerPermission: ctx.multiSignIfo.isOwnerPermission,\r\n })\r\n sleep(100);\r\n return sign\r\n }\r\n catch (error) {\r\n if (error instanceof Error) {\r\n const msg = formatTronErrorMessage(error);\r\n aMessage.error(msg);\r\n }\r\n throw new Error('');\r\n }\r\n },\r\n\r\n fetchdelegateResourceServerBroadcast: async (ctx, ev) => {\r\n try {\r\n const params = {\r\n frozenBalance: ctx.frozenBalance * 10 ** 6,\r\n ownerAddress: ctx.ownerAddress,\r\n receiveAddress: ctx.orderDetail.receive_address,\r\n resourceType: ctx.resourceType,\r\n isMultiSign: ctx.isMultiSign,\r\n multiSignIfo: ctx.multiSignIfo,\r\n isLock: ctx.orderDetail.is_lock === 1,\r\n lockPeriod: ctx.orderDetail?.lock_period\r\n ? ctx.orderDetail?.lock_period\r\n : ctx.lockPeriod,\r\n }\r\n return await tron.delegateResourceServerBroadcast(params)\r\n }\r\n catch (error) {\r\n if (error instanceof Error) {\r\n const msg = formatTronErrorMessage(error);\r\n aMessage.error(msg);\r\n }\r\n throw new Error('');\r\n }\r\n },\r\n\r\n orderDelegateC2C: async (ctx, ev: any) => {\r\n return await apis.orderDelegateC2C({\r\n requestBody: {\r\n order_no: ctx.orderDetail.order_no,\r\n settle_address: ctx.settleAddress,\r\n resource_value: ctx.resourceValue,\r\n signed_txn: ev.data,\r\n resource_type: ctx.orderDetail.resource_type,\r\n },\r\n }, { errorMessageMode: 'none' })\r\n },\r\n\r\n orderQuery: async (ctx, ev) => {\r\n // 轮询订单\r\n let second = 0\r\n do {\r\n try {\r\n await sleep(2000)\r\n const res = await apis.orderQuery(\r\n {\r\n order_no: ctx.orderDetail.order_no,\r\n },\r\n { errorMessageMode: 'none' },\r\n )\r\n if (res)\r\n return res\r\n second++\r\n }\r\n catch (error: any) {\r\n if (ApiError.is(error)) {\r\n if (error.code === 12002)\r\n throw new Error(error.message)\r\n }\r\n else {\r\n throw new Error(error)\r\n }\r\n }\r\n } while (second <= 8)\r\n throw new Error('')\r\n },\r\n },\r\n guards: {\r\n hasOrderRes: (context, event: any) => {\r\n return !!event.data;\r\n },\r\n\r\n isConflict: (context, event: any) => {\r\n if (event.data.code === 12006)\r\n return false;\r\n\r\n return true;\r\n },\r\n },\r\n delays: {},\r\n })\r\n\r\n const states = reactiveComputed(() => {\r\n const s = machine.state.value;\r\n const isRequest = s.hasTag('request');\r\n const isSameAddress = s.context.orderPreSubmitCode === 12001;\r\n const isConfirm = s.hasTag('confirm') || s.hasTag('request');\r\n const isRefresh = s.matches('onShowSellSuccessModal');\r\n const isConflict = s.matches('conflict');\r\n const showSellRefPopup = s.hasTag('orderQueryResult');\r\n\r\n return {\r\n isRequest,\r\n isConfirm,\r\n isSameAddress,\r\n showSellRefPopup,\r\n isRefresh,\r\n isConflict,\r\n };\r\n });\r\n\r\n watch(machine.state, (state) => {\r\n })\r\n\r\n return {\r\n machine,\r\n states,\r\n }\r\n})\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import type { IProps } from '../SellPopup.vue'\r\nimport { EFreezeType } from '../../freeze/FreezePopup.vue'\r\nimport { tron } from '~/utils/tron-v2'\r\nimport { useMultiSignProvider } from '~/pages-components/c2c/hooks/useMultiSign'\r\nimport { useC2cSellMachine } from '~/pages-components/c2c/components/sell/machine/useC2cSellMachine'\r\n// import { SentryUtils } from '~/utils/sentry'\r\nimport { discountResult } from '~/composables/app/getC2cAmountCalculator'\r\n\r\nexport function useSell(props: IProps) {\r\n // const sellScope = new SentryUtils('c2c')\r\n const { account, refetch } = tronComp.useAccountCurrent()\r\n\r\n const multiAddress = ref(props.muitiSingAddress)\r\n const isMultiSign = useBoolean(false)\r\n const mode = ref(EFreezeType.Short)\r\n const visibleFreeze = useBoolean(false)\r\n const spinning = useBoolean(false)\r\n const { orderDetail } = props\r\n const { config } = useAppState()\r\n const formData = reactive({\r\n settleAddress: account?.address,\r\n sellAmount: orderDetail.min_amount,\r\n })\r\n\r\n const {\r\n onValidatePower,\r\n info: multiSignIfo,\r\n setAddress,\r\n } = useMultiSignProvider()\r\n const { machine, states } = useC2cSellMachine()!\r\n\r\n const sellForm = useAntFormValidator({\r\n payAddress: {\r\n value: multiAddress,\r\n validator(rule, value) {\r\n if (isMultiSign.is && !tron.isAddress(value))\r\n return Promise.reject($t('sHmcz_3thcjWOabRqDhT'))\r\n\r\n return Promise.resolve()\r\n },\r\n },\r\n settleAddress: {\r\n value: toRef(formData, 'settleAddress'),\r\n validator(rule, value) {\r\n if (!tron.isAddress(value))\r\n return Promise.reject($t('e8ik9k7EhmgdQfl0ZOlu'))\r\n\r\n return Promise.resolve()\r\n },\r\n },\r\n sellAmount: {\r\n value: toRef(formData, 'sellAmount'),\r\n validator(rule, value) {\r\n if (!value)\r\n return Promise.reject($t('n305EyjKQuab3Q0Ym5Msu'))\r\n\r\n for (const [s, e] of toValue(ranges)) {\r\n if (value < s && value > e) {\r\n return Promise.reject(\r\n $t('hB-Pdl_5hJSlPkso_yNMs') + formatAmount(energyMin.value, 0),\r\n )\r\n }\r\n }\r\n return Promise.resolve()\r\n },\r\n },\r\n })\r\n const onSubmit = async () => {\r\n try {\r\n const formState = (await sellForm.$form.value\r\n ?.validate()\r\n .catch(() => {})) as typeof sellForm.formState\r\n\r\n if (formState) {\r\n setAddress(toValue(multiAddress))\r\n\r\n onValidatePower(isMultiSign.is, 57)\r\n await validator()\r\n console.log('formState.sellAmount', formState.sellAmount)\r\n machine.send({\r\n type: 'SUBMIT',\r\n orderDetail,\r\n ownerAddress: getOwnerAddress(),\r\n resourceValue: formState.sellAmount,\r\n settleAddress: formState.settleAddress,\r\n frozenBalance: sellInfo.value.freezeTRX,\r\n skipDuplicateCheck: 0,\r\n multiSignIfo,\r\n isMultiSign: isMultiSign.is,\r\n resourceType: toValue(resourceType),\r\n })\r\n }\r\n }\r\n catch (e) {\r\n if (typeof e === 'object') {\r\n const msg = formatTronErrorMessage(e)\r\n aMessage.error(msg)\r\n return\r\n }\r\n\r\n if (e instanceof Error) {\r\n // sellScope.setTagPath('c2c', ['sell'])\r\n // sellScope.captureException(e)\r\n aMessage.error(e.message)\r\n }\r\n }\r\n }\r\n\r\n const getOwnerAddress = (): string => {\r\n return isMultiSign.is ? multiAddress.value : account.address\r\n }\r\n\r\n const validator = () => {\r\n return new Promise((resolve, reject) => {\r\n if (orderDetail.receive_address == getOwnerAddress()) {\r\n aMessage.error($t('DogFR2AdsY9AJ9A8dDB8y'))\r\n reject()\r\n }\r\n if (!sellInfo.value.freezeTRX && !formData.sellAmount) {\r\n aMessage.error($t('pVxWPz1WarabRXO2VSUyt'))\r\n reject()\r\n }\r\n resolve('')\r\n })\r\n }\r\n\r\n // 打开质押弹窗\r\n const openFreezeModal = (e: EFreezeType) => {\r\n mode.value = e\r\n setAddress(toValue(multiAddress))\r\n visibleFreeze.setTrue()\r\n }\r\n const closeFreeze = () => visibleFreeze.setFalse()\r\n\r\n const freezeModalDetail = computed(() => {\r\n const info = {\r\n orderDetail,\r\n sellAmount: formData.sellAmount ?? orderDetail.min_amount,\r\n mode: EFreezeType.Short,\r\n multiAddress: isMultiSign.is ? multiAddress.value : '',\r\n }\r\n info.mode = mode.value\r\n\r\n return info\r\n })\r\n\r\n const resourceType = computed(() =>\r\n orderDetail.resource_type === 1 ? 'ENERGY' : 'BANDWIDTH',\r\n )\r\n\r\n const energyMin = computed(() =>\r\n Math.min(\r\n config.value?.order.energy_min_value ?? 10000,\r\n config.value?.order.energy_c2c_min_value ?? 10000,\r\n ),\r\n )\r\n\r\n const ranges = computed(() => {\r\n return [\r\n [0, orderDetail.min_amount - toValue(energyMin)],\r\n [orderDetail.max_amount ?? 10000, orderDetail.max_amount ?? 10000],\r\n ]\r\n })\r\n\r\n const sellInfo = computed(() => {\r\n const { resource } = account\r\n const info = {\r\n freezeTRX: 0,\r\n amount: 0,\r\n }\r\n if (!resource)\r\n return info\r\n // 计算收入\r\n const params = {\r\n rentTimeUnit: orderDetail.rent_time_unit,\r\n rentDuration: orderDetail.rent_duration,\r\n resourceValue: formData.sellAmount,\r\n resourceType: orderDetail.resource_type,\r\n priceInSun: orderDetail.price_in_sun,\r\n\r\n }\r\n const { amount } = discountResult(params)\r\n info.amount = amount * 0.75\r\n\r\n info.freezeTRX = Math.ceil(\r\n formData.sellAmount / (resource.energyUnitPrice ?? 0),\r\n )\r\n if (orderDetail?.resource_type === 0) {\r\n info.freezeTRX = Math.ceil(\r\n formData.sellAmount / (resource.netUnitPrice ?? 0),\r\n ) // 按全网质押单价计算\r\n }\r\n return info\r\n })\r\n\r\n const showSellRang = computed(() => {\r\n return (\r\n (orderDetail.resource_split_value ?? 0) < (orderDetail.max_amount ?? 0)\r\n && orderDetail.max_amount > orderDetail.min_amount\r\n )\r\n })\r\n\r\n return {\r\n onSubmit,\r\n openFreezeModal,\r\n freezeModalDetail,\r\n resourceType,\r\n formData,\r\n ranges,\r\n energyMin,\r\n sellInfo,\r\n closeFreeze,\r\n multiAddress,\r\n accountAddress: account.address,\r\n visibleFreeze,\r\n isMultiSign,\r\n spinning,\r\n sellForm,\r\n showSellRang,\r\n }\r\n}\r\n","export default \"__VITE_ASSET__fb1b5870__\"","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","import { imtoken } from '~/utils/imtoken'\r\n\r\n// 改成 响应式的\r\nexport function useIsImtoken() {\r\n // 没有连接并且是imtoken\r\n if (imtoken.isImToken() && !(window as any).tronWeb)\r\n imtoken.showAccountSwitch()\r\n}\r\n\r\n// 判断是否是imtoken的环境Promise todo\r\nexport function hasImtoken() {\r\n new Promise((resolve, reject) => {\r\n if (imtoken.isImToken() && !(window as any).tronWeb)\r\n resolve()\r\n else\r\n reject()\r\n })\r\n}\r\n"],"names":["useResourceTypeText","type","computed","value","TronRes","BANDWIDTH","$t","_imports_0$1","URL","module","meta","url","href","_imports_1","_imports_2","locale","useSwichLocale","states","onReceive","onRule","receiveList","activityConfig","enabled","isLoading","useActivity","slidesToShow","length","_imports_0","sellImg","config","useAppState","tradRef","ref","useAnimation","animationData","discountResult","params","reactiveComputed","_config$value$estimat","_config$value6","info","fee","bignumber","amount","save","discount","needBurning","priceInSun","resourceValue","day","rentTimeUnit","rentDuration","resourceType","multipliedBy","estimate","energy_price","dividedBy","_params$resourceValue","_params$resourceValue2","payAmount","decimalPlaces","BigNumber","ROUND_DOWN","calcAmount","minus","isNegative","discountFormula","useBuyProvider","useBuy","createInjectionState","shortcutTime","useRentalTime","account","isConnected","tronComp","useAccountCurrent","formData","reactive","ENERGY","receiveAddress","rentTimeSecond","times","waitSecond","watch","val","console","log","order","time_range_c2c","immediate","deep","fromDataRefs","toRefs","unitPriceRange","_config$value","_config$value2","range","c2cMinValue","c2cMaxValue","unref","energy_c2c_min_value","bandwidth_c2c_min_value","energy_c2c_max_value","bandwidth_c2c_max_value","resourcePriceRange","priceRange","_config$value$price_c","_config$value3","_config$value4","c2cMinSun","price_c2c","sun","c2cMaxSun","source","sun_m","sun_1d","sun_1h","sun_6h","sun_3h","max_sun","resourceUnitPrice","defaultPriceInSun","_config$value5","toLowerCase","default_sun","default_sun_m","default_sun_1d","default_sun_1h","default_sun_6h","default_sun_3h","resourceDefaultPrice","buyForm","useAntFormValidator","validator","rule","isUnaddressDom","imtoken","isImToken","tron","isAddress","Promise","resolve","reject","isPenNumber","otherMode","tronWeb","shortcut","_config$value7","_config$value8","energy_c2c_quick_options","bandwidth_quick_options","isOpenTTPay","_config$value9","base","enable_ttpay","window","payType","EPaymentMethod","DAPP","paymentMethod","TTPAY","BALANCE","trxMoney","useUserInfo","buttonGroup","_unref5","_unref6","walletConnection","toValue","walletConnectionToPay","download","pay","toDecimalPlaces","balanceTip","isRentDays","paymentAddress","_config$value10","wallet","payment_c2c_address","useEventBus","on","address","watchEffect","_buyForm$$form$value2","$form","clearValidate","changeEnergyUnit","e","chooseRentDuration","item","_item","_buyForm$$form$value","data","find","i","dur","unit","onSubmit","async","onValidate","togglePayType","code","machine","createMachine","id","initial","idle","always","target","cond","OPEN","confirm","CLOSE","BUY","actions","PAY","internal","tronlink","entry","invoke","src","onDone","onError","tags","END","OK","TTpay","STOP","KEEP","Balance","schema","events","predictableActionArguments","preserveActionOrder","context","tsTypes","useC2cBuyMachineProvide","useC2cBuyMachine","queryTronlinkOrder","queryTtpayOrder","rentalInformation","bp","useAppBreakpoints","useMachine","c2cBuylMachine","requestError","ctx","ev","Error","message","includes","aMessage","error","extractContentInBrackets","toPayment","ltLaptop","location","paymentUrl","open","jumpCompatible","payment_url","encodeURIComponent","setPayment","actions.assign","_ev$data","setInfo","discountInfo","toAddress","services","precreateTronlinkOrder","fromAddress","res","payTRXServerBroadcast","msg","formatTronErrorMessage","createTronlinkOrder","key","snakeCase","signed_txn","resource_value","Number","apis","orderCreateC2C","requestBody","errorMessageMode","second","sleep","orderQuery","order_no","trx_address","pay_address","status","callback","createTtpayOrder","pay_amount","ttpayOrderC2C","out_trade_no","startTime","Date","now","resume","pause","useTimeoutPoll","resultType","checkCode","_res$data","createBalanceOrder","apiOrderCreateOrderByBalance","order_type","guards","isTronlink","isTtpay","isBalance","isPc","event","laptopl","delays","s","state","isConfirm","matches","isInfoConfirm","isIdle","isTronlinkOrderResults","isTtpayOrderResults","isBalanceResults","isTtpayQueryOrder","isRequest","hasTag","isQueryingTtpay","isRefresh","requesting","_hoisted_2","_createElementVNode","class","_hoisted_3","_ctx","_cache","_openBlock","_createElementBlock","_hoisted_1","_toDisplayString","_info$value","_unref7","_unref8","refetch","userInfoQuerier","bus","dappTitle","title","subtitle","ttpayTitle","_queryTtpayOrder$valu","_queryTtpayOrder$valu2","_queryTtpayOrder$valu3","balancePaymentCallback","send","dappPaymentCallback","TRANSFER","props","__props","emits","__emit","max","min","useBoolean","cursorState","count","inc","dec","initiaValue","inc2","dec2","useNumber","useVModel","isAutoCancel","checking","useHideFormHelp","ResourceType","useResource","isNaN","isLessThanOrEqualTo","_window","_buyForm$$form$value3","showAccountSwitch","formState","validate","catch","setTrue","arr","name","useMultiSignProvider","useMultiSign","isOwnerPermission","permissionId","addressMuktiSign","accountCurrent","accountMultiSign","useAccount","toRef","onValidatePower","isMultiSign","owner_permission","ownerPermission","active_permission","activePermission","threshold","keys","some","_tron$tronWeb","toHex","weight","_tron$tronWeb2","forEach","_tron$tronWeb3","_tron$tronWeb4","getPermission","operations","tronErrors","MULTISIGN_ERROR","setAddress","useSellProvider","useSell","is","multiSingAddress","muktiSignResources","energy","bandwidth","balance","remaineResource","_canDelegatedBalanceF","_canDelegatedBalanceF2","_info$ENERGY","_info$BANDWIDTH","delegable","delegableMulti","energyUnitPrice","resource","netUnitPrice","canDelegatedBalanceForEnergy","Math","floor","canDelegatedBalanceForBandwidth","balanceTrx","_accountMultiSign$del","_accountMultiSign$del2","_accountMultiSign$del3","_accountMultiSign$del4","_accountMultiSign$bal","setMultiSingAddress","useFreeze","orderDetail","detail","multiAddress","loading","freezeResult","modalContent","accountMulti","multiRefetch","mode","maxTRX","_balance$value","trx","resource_type","freezeInfo","availableResource","needResource","sellAmount","needExchange","remaine","result","onChange","cost","setMaxTrx","_formData$amount2","_formData$amount","formatAmount","freezeBalanceV2ByMultiSign","freezeBalanceV2","fetchCanDelegatedMaxSize","typeTxt","setFalse","EFreezeType","EFreezeType2","resTypeText","SUBMIT","DOUBLECHEC","FetchOrderPredelegete","fetchDelegateResourceSign","fetchdelegateResourceServerBroadcast","conflict","orderDelegateC2C","onShowSellSuccessModal","onShowSellFailModal","useC2cSellMachineProvide","useC2cSellMachine","c2cSellMachine","init","orderPreSubmitCode","resetting","showErrorMessage","preRequestError","orderQuerySuccess","orderQueryRes","lockPeriod","rent_time_unit","rent_duration","ownerAddress","settleAddress","frozenBalance","skipDuplicateCheck","multiSignIfo","fetchOrderPredelegete","orderPreDelegateC2C","owner_address","frozen_balance","permission_id","skip_duplicate_check","options","estimatedBandwidth","String","estimatedEnergy","sign","getDelegateResourceSign","c2CPreDelegateResp","__options","_ctx$orderDetail","_ctx$orderDetail2","receive_address","isLock","is_lock","lock_period","delegateResourceServerBroadcast","settle_address","ApiError","hasOrderRes","isConflict","isSameAddress","showSellRefPopup","exports","openFreezeModal","freezeModalDetail","ranges","energyMin","sellInfo","closeFreeze","showSellRang","accountAddress","visibleFreeze","spinning","sellForm","muitiSingAddress","Short","min_amount","payAddress","getOwnerAddress","freezeTRX","_formData$sellAmount","_config$value$order$e","_config$value11","_config$value$order$e2","_config$value12","energy_min_value","_orderDetail$max_amou","_orderDetail$max_amou2","max_amount","_resource$energyUnitP","price_in_sun","_resource$netUnitPric","ceil","_orderDetail$resource","_orderDetail$max_amou3","resource_split_value","_sellForm$$form$value","onPayAddressChange","setTimeout","service","onTransition","emptyImg","SellPopupGather","defineAsyncComponent","import","dataList","pagination","sort","total","pageSize","page","useQuery","queryKey","orderTrades","refetchOnWindowFocus","refetchInterval","queryFn","page_size","_data$value$list","_data$value","list","_data$value$paginatio","_data$value2","useSelfHelpOrder","walletBus","SellPopupRef","tableColumns","dataIndex","align","responsive","width","paginationChange","record","_globalModal$ConnectW","globalModal","ConnectWallet","visible","prompt","voteList","votetInfo","useVoteData","querier","witnessApi","staleTime","_tronVoteData$tronPow","_tronVoteData$tronPow2","_tronVoteData","voteTotal","voteUsed","votableNumber","maxVoteNumber","voteUsedStic","tronPowerLimit","tronPowerUsed","_querier$data$value","map","onInputBlur","onSetALL","submiting","inputTotal","filterData","_voteList2$value","filter","hasOwnProperty","getInputTotal","_filterDataRes$map","filterDataRes","reduce","previousValue","currentValut","Object","fromEntries","onSetALL2","usableValue","JSON","stringify","vote","close","useVote","_voteList$value","__expose","VoteModalRef","onSelect","emit","toVote","_globalModal$ConnectW2","listData","orderLastTrades","_data$value3","_data$value4","useLatestTable","tronAccount","maxTrx","_formData$value","lockBalance","multiplyByTenToPower","estimatedResource","_formData$value2","print","unitPrinceTrx","customTrx","setAmount","onCconfirm","_formData$value3","_data$estimatedResour","_data$estimatedResour2","_formData$value4","_formData$value5","_formData$value6","receiverAddress","undelegateResource","recoveryResult","useRecycleResoure","onMounted","cancel","isFetching","fetchAgencyOrders","limit","start","_data$value5","_data$value$data$tota","_data$value6","useAgentTable","row","percent","current","_resourceType","queritr","subOrderListByAddress","_record$value2","order_parent_no","_queritr$data$value","_queritr$data$value2","_record$value","getProgressVal","frozen_resource_value","myPayOrder","_data$value7","_data$value8","useBuyTable","CencelOrderRef","MineOrderDetailRef","activeKey","showSellVip","useActivityProvider","BuyPopupRef","ltTabletl","i18nHead","useLocaleHead","addSeoAttributes","useHead","htmlAttrs","lang","link","property","content"],"mappings":"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"}