import { TrailsWidget } from '0xtrails/widget'
import { encodeFunctionData } from 'viem'
import { nftABI } from './abi.ts'
export const CrossChainNFTPurchase = () => {
// NFT contract address on Arbitrum
const NFT_CONTRACT = "0xAA3df3c86EdB6aA4D03b75092b4dd0b99515EC83"
// NFT purchase calldata
const purchaseCalldata = encodeFunctionData({
abi: nftABI,
functionName: 'mint',
args: [
"0x97c4a952b46becad0663f76357d3776ba11566e1", // recipient address
],
})
return (
<TrailsWidget
mode="pay"
toAddress={NFT_CONTRACT}
toAmount="0.00002"
toChainId={42161} // Arbitrum
toToken="ETH"
toCalldata={purchaseCalldata}
onCheckoutComplete={({ sessionId }) => {
console.log('NFT purchase completed:', sessionId)
// Handle successful purchase
}}
onCheckoutError={({ sessionId, error }) => {
console.error('Purchase failed:', sessionId, error)
}}
theme="auto"
>
<button className="nft-purchase-button">
Buy NFT (0.00002 ETH)
</button>
</TrailsWidget>
)
}