@tatumio/tatum-v1
Version:
Tatum API client allows browsers and Node.js clients to interact with Tatum API.
119 lines • 11.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAccountBalance = exports.getAllAccounts = exports.getAccountsByCustomerId = exports.unfreezeAccount = exports.freezeAccount = exports.deactivateAccount = exports.activateAccount = exports.deleteBlockedAmountForAccount = exports.deleteBlockedAmountWithTransaction = exports.deleteBlockedAmount = exports.blockAmount = exports.getBlockedAmountsByAccountId = exports.createAccounts = exports.updateAccount = exports.generateAccount = exports.createAccount = exports.getAccountById = void 0;
const tatum_1 = require("../connector/tatum");
const model_1 = require("../model");
const BlockageTransaction_1 = require("../model/request/BlockageTransaction");
const CreateAccountsBatch_1 = require("../model/request/CreateAccountsBatch");
const UpdateAccount_1 = require("../model/request/UpdateAccount");
const SubscriptionType_1 = require("../model/response/ledger/SubscriptionType");
const offchain_1 = require("../offchain");
const wallet_1 = require("../wallet");
const subscription_1 = require("./subscription");
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/getAccountByAccountId" target="_blank">Tatum API documentation</a>
*/
const getAccountById = async (id) => tatum_1.get(`/v3/ledger/account/${id}`);
exports.getAccountById = getAccountById;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/createAccount" target="_blank">Tatum API documentation</a>
*/
const createAccount = async (account) => tatum_1.post('/v3/ledger/account', account, model_1.CreateAccount);
exports.createAccount = createAccount;
/**
* Abstraction unification endpoint for creating new ledger account, optionally added wallet generation, generating deposit blockchain address
* and register incoming TX webhook notification.
* @param account Account to be created.
* @param generateNewWallet If new wallet should be created as well
* @param testnet if we are using testnet or not
* @param webhookUrl optional URL, where webhook will be post for every incoming blockchain transaction to the address
*/
const generateAccount = async (account, generateNewWallet = true, testnet = true, webhookUrl) => {
let w;
if (generateNewWallet) {
// @ts-ignore
w = await wallet_1.generateWallet(account.currency, testnet);
// @ts-ignore
account.xpub = w.xpub || w.address;
}
const a = await exports.createAccount(account);
const address = await offchain_1.generateDepositAddress(a.id);
if (webhookUrl) {
await subscription_1.createNewSubscription({ type: SubscriptionType_1.SubscriptionType.ACCOUNT_INCOMING_BLOCKCHAIN_TRANSACTION, attr: { url: webhookUrl, id: a.id } });
}
return { account: a, address, wallet: w };
};
exports.generateAccount = generateAccount;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/updateAccountByAccountId" target="_blank">Tatum API documentation</a>
*/
const updateAccount = async (id, account) => tatum_1.put(`/v3/ledger/account/${id}`, account, UpdateAccount_1.UpdateAccount);
exports.updateAccount = updateAccount;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/createAccountBatch" target="_blank">Tatum API documentation</a>
*/
const createAccounts = async (accounts) => tatum_1.post('/v3/ledger/account/batch', accounts, CreateAccountsBatch_1.CreateAccountsBatch);
exports.createAccounts = createAccounts;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/getBlockAmount" target="_blank">Tatum API documentation</a>
*/
const getBlockedAmountsByAccountId = async (id, pageSize = 50, offset = 0) => tatum_1.get(`/v3/ledger/account/block/${id}?pageSize=${pageSize}&offset=${offset}`);
exports.getBlockedAmountsByAccountId = getBlockedAmountsByAccountId;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/blockAmount" target="_blank">Tatum API documentation</a>
*/
const blockAmount = async (id, block) => tatum_1.post(`/v3/ledger/account/block/${id}`, block, model_1.BlockAmount);
exports.blockAmount = blockAmount;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/deleteBlockAmount" target="_blank">Tatum API documentation</a>
*/
const deleteBlockedAmount = async (id) => tatum_1.httpDelete(`/v3/ledger/account/block/${id}`);
exports.deleteBlockedAmount = deleteBlockedAmount;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/unblockAmountWithTransaction" target="_blank">Tatum API documentation</a>
*/
const deleteBlockedAmountWithTransaction = async (id, txData) => tatum_1.put(`/v3/ledger/account/block/${id}`, txData, BlockageTransaction_1.BlockageTransaction);
exports.deleteBlockedAmountWithTransaction = deleteBlockedAmountWithTransaction;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/deleteAllBlockAmount" target="_blank">Tatum API documentation</a>
*/
const deleteBlockedAmountForAccount = async (id) => tatum_1.httpDelete(`/v3/ledger/account/block/account/${id}`);
exports.deleteBlockedAmountForAccount = deleteBlockedAmountForAccount;
/**
* Activates deactivated account. If active account is deactivated nothing will happen.
*
* For more details, see <a href="https://apidoc.tatum.io/#operation/activateAccount" target="_blank">Tatum API documentation</a>
*/
const activateAccount = async (id) => tatum_1.put(`v3/ledger/account/${id}/activate`);
exports.activateAccount = activateAccount;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/deactivateAccount" target="_blank">Tatum API documentation</a>
*/
const deactivateAccount = async (id) => tatum_1.put(`/v3/ledger/account/${id}/deactivate`);
exports.deactivateAccount = deactivateAccount;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/freezeAccount" target="_blank">Tatum API documentation</a>
*/
const freezeAccount = async (id) => tatum_1.put(`/v3/ledger/account/${id}/freeze`);
exports.freezeAccount = freezeAccount;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/unfreezeAccount" target="_blank">Tatum API documentation</a>
*/
const unfreezeAccount = async (id) => tatum_1.put(`/v3/ledger/account/${id}/unfreeze`);
exports.unfreezeAccount = unfreezeAccount;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/getAccountsByCustomerId" target="_blank">Tatum API documentation</a>
*/
const getAccountsByCustomerId = async (id, pageSize = 50, offset = 0) => tatum_1.get(`/v3/ledger/account/customer/${id}?pageSize=${pageSize}&offset=${offset}`);
exports.getAccountsByCustomerId = getAccountsByCustomerId;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/getAllAccounts" target="_blank">Tatum API documentation</a>
*/
const getAllAccounts = async (pageSize = 50, offset = 0) => tatum_1.get(`/v3/ledger/account?pageSize=${pageSize}&offset=${offset}`);
exports.getAllAccounts = getAllAccounts;
/**
* For more details, see <a href="https://apidoc.tatum.io/#operation/getAccountBalance" target="_blank">Tatum API documentation</a>
*/
const getAccountBalance = async (id) => tatum_1.get(`/v3/ledger/account/${id}/balance`);
exports.getAccountBalance = getAccountBalance;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sZWRnZXIvYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBNkQ7QUFDN0Qsb0NBQXNGO0FBQ3RGLDhFQUF3RTtBQUN4RSw4RUFBd0U7QUFDeEUsa0VBQTREO0FBQzVELGdGQUEwRTtBQUMxRSwwQ0FBa0Q7QUFDbEQsc0NBQXdDO0FBQ3hDLGlEQUFvRDtBQUVwRDs7R0FFRztBQUNJLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxFQUFVLEVBQW9CLEVBQUUsQ0FBQyxXQUFHLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFBeEYsUUFBQSxjQUFjLGtCQUEwRTtBQUVyRzs7R0FFRztBQUNJLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxPQUFzQixFQUFvQixFQUFFLENBQUMsWUFBSSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxxQkFBYSxDQUFDLENBQUE7QUFBdEgsUUFBQSxhQUFhLGlCQUF5RztBQUVuSTs7Ozs7OztHQU9HO0FBQ0ksTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLE9BQXNCLEVBQUUsaUJBQWlCLEdBQUcsSUFBSSxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsVUFBbUIsRUFBRSxFQUFFO0lBQzNILElBQUksQ0FBQyxDQUFBO0lBQ0wsSUFBSSxpQkFBaUIsRUFBRTtRQUNuQixhQUFhO1FBQ2IsQ0FBQyxHQUFHLE1BQU0sdUJBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ25ELGFBQWE7UUFDYixPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQTtLQUNyQztJQUNELE1BQU0sQ0FBQyxHQUFHLE1BQU0scUJBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QyxNQUFNLE9BQU8sR0FBRyxNQUFNLGlDQUFzQixDQUFD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