require('dotenv').config();
const {
CoinbasePrimeClient,
CoinbasePrimeCredentials,
OrdersService,
OrderSide,
} = require('@coinbase-sample/prime-sdk-ts');
const creds = JSON.parse(process.env.PRIME_CREDENTIALS);
const portfolioId = process.env.PORTFOLIO_ID;
const acceptQuote = async (orderService, portfolioId, quoteId) => {
const acceptRequest = {
portfolioId,
productId: 'BTC-USD',
side: OrderSide.Buy,
clientOrderId: crypto.randomUUID(),
quoteId: quoteId,
};
console.log('Accepting quote: ', acceptRequest);
const response = await orderService.acceptQuote(acceptRequest);
return response;
};
const credentials = new CoinbasePrimeCredentials(
creds.AccessKey,
creds.SecretKey,
creds.Passphrase
);
const client = new CoinbasePrimeClient(credentials);
const ordersService = new OrdersService(client);
// You would typically get this quoteId from a previous createQuote call
const exampleQuoteId = 'your-quote-id-here';
acceptQuote(ordersService, portfolioId, exampleQuoteId)
.then((response) => {
console.dir(response, { depth: null });
})
.catch((err) => {
console.dir(err, { depth: null });
});