const {
Transaction,
SystemProgram,
LAMPORTS_PER_SOL,
} = require('@solana/web3.js');
const tx = new Transaction({
recentBlockhash: blockhash,
feePayer: feePayerAddress,
}).add(
SystemProgram.transfer({
fromPubkey: fromPublicKey,
toPubkey: toPublicKey,
lamports: LAMPORTS_PER_SOL * 0.01, // 0.01 SOL
}),
);
// Serialize the transaction to a Buffer
const serializedTransaction = tx.serialize({ requireAllSignatures: false });
// Convert the serialized Buffer to a Base64 string
const base64Transaction = serializedTransaction.toString('base64');
// Sign the transaction
const signResponse = await axios.post(
`${PORTAL_MPC_CLIENT_URL}/v1/sign`,
{
share: share,
method: 'sol_signTransaction',
params: base64Transaction,
chainId: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
},
{
headers: { Authorization: `Bearer ${clientApiKey}` },
},
);