I faced the same issues with integrating multiple packages and handling minting manually. To simplify the workflow, I built a smart contract and then exposed it through a SDK and a widget that handle all interactions with SPL tokens automatically. Everything is open source under solmint.net and https://mintme.dev — you can mint, revoke authorities, and manage tokens without dealing with low-level integration errors.
Check this video I did https://www.youtube.com/watch?v=9Fyg-SO5ULo&t=247s
npm i mintme-widget
<MintmeWidget
endpoint="https://mainnet.helius-rpc.com/?api-key=your-key"
cluster="mainnet-beta"
pinataConfig={{
apiKey: "your-pinata-jwt-token",
gateway: "your-gateway.com"
}}
partnerWallet="your-wallet-here"
partnerAmount={0}
defaultTheme="light"
options={{
showCredit: true
}}
className="my-custom-styles"
/>
Or you can check mitnme-sdk (https://github.com/mintme-dev/mintme-sdk)