forked from mito-systems/sol-mem-gen
Simplify function to display price with decimal point
This commit is contained in:
parent
5fd10ae15f
commit
771656ae5d
@ -22,6 +22,7 @@
|
||||
"typeorm": "^0.3.12"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bn.js": "^5.1.6",
|
||||
"@types/node": "^20",
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
|
@ -49,12 +49,12 @@ export async function POST(req: NextRequest): Promise<NextResponse> {
|
||||
)
|
||||
}
|
||||
|
||||
const MTMFor1USDC = await getUSDCToMTMQuote();
|
||||
const mtmFor1USDC = await getUSDCToMTMQuote();
|
||||
|
||||
const scale = new BN(100);
|
||||
const scaledCost = new BN(model.cost * 100);
|
||||
|
||||
const expectedAmount = scaledCost.mul(MTMFor1USDC).div(scale);
|
||||
const expectedAmount = scaledCost.mul(mtmFor1USDC).div(scale);
|
||||
const isPaymentVerified = await verifyPayment(transactionSignature, expectedAmount)
|
||||
|
||||
if (!isPaymentVerified) {
|
||||
|
@ -17,13 +17,13 @@ const Page: React.FC = (): React.ReactElement => {
|
||||
type: null
|
||||
})
|
||||
|
||||
const [MTMFor1USDC, setMTMFor1USDC] = useState<BN>(new BN(0));
|
||||
const [mtmFor1USDC, setMtmFor1USDC] = useState<BN>(new BN(0));
|
||||
|
||||
useEffect(() => {
|
||||
const fetchPrice = async () => {
|
||||
try {
|
||||
const price = await getUSDCToMTMQuote();
|
||||
setMTMFor1USDC(price);
|
||||
setMtmFor1USDC(price);
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch price:', error);
|
||||
}
|
||||
@ -121,7 +121,7 @@ const Page: React.FC = (): React.ReactElement => {
|
||||
{FLUX_MODELS.map((model) => {
|
||||
// Convert cost from number to BN
|
||||
const costBN = new BN(model.cost * 100);
|
||||
const mtmPriceBN = costBN.mul(MTMFor1USDC).div(new BN(100));
|
||||
const mtmPriceBN = costBN.mul(mtmFor1USDC).div(new BN(100));
|
||||
|
||||
return (
|
||||
<AIServiceCard
|
||||
|
@ -19,10 +19,12 @@ interface GenerationState {
|
||||
}
|
||||
|
||||
const formatBNWithDecimals = (value: BN, decimals: number): string => {
|
||||
const quotient = value.div(new BN(10).pow(new BN(decimals)));
|
||||
const remainder = value.mod(new BN(10).pow(new BN(decimals)));
|
||||
const decimalPart = remainder.mul(new BN(10).pow(new BN(6))).div(new BN(10).pow(new BN(decimals)));
|
||||
return `${quotient.toString()}.${decimalPart.toString().padStart(6, '0')}`;
|
||||
const factor = new BN(10).pow(new BN(decimals));
|
||||
// Part before decimal point
|
||||
const quotient = value.div(factor);
|
||||
// Part after decimal point
|
||||
const remainder = value.mod(factor);
|
||||
return `${quotient.toString()}.${remainder.toString().padStart(decimals, '0')}`;
|
||||
}
|
||||
|
||||
const AIServiceCard: React.FC<AIServiceCardProps> = ({
|
||||
|
@ -72,10 +72,6 @@ export async function verifyPayment(
|
||||
const { info } = parsed;
|
||||
const { amount } = info;
|
||||
|
||||
console.log('Parsed transfer instruction:', parsed);
|
||||
console.log('Transfer info:', info);
|
||||
console.log('Transfer amount:', amount);
|
||||
|
||||
const transactionAmount = new BN(amount);
|
||||
|
||||
// Transaction amount should be within 10% of the expected amount
|
||||
|
Loading…
Reference in New Issue
Block a user