UNPKG

@signumjs/core

Version:

Principal package with functions and models for building Signum Network applications.

185 lines 9.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApiSettings = void 0; exports.composeApi = composeApi; /** * Copyright (c) 2019 Burst Apps Team * Modified (c) 2021,2022,2023,2024 Signum Network */ const service_1 = require("../service"); const apiComposer_1 = require("./apiComposer"); const block_1 = require("./factories/block"); const network_1 = require("./factories/network"); const message_1 = require("./factories/message"); const account_1 = require("./factories/account"); const alias_1 = require("./factories/alias"); const contract_1 = require("./factories/contract"); const transaction_1 = require("./factories/transaction"); const asset_1 = require("./factories/asset"); /** * Settings for API used in {@link composeApi} * * */ class ApiSettings { nodeHost; reliableNodeHosts; httpClientOptions; httpClient; apiVersion; /** * @param nodeHost {string} The url of the peer/node * @param reliableNodeHosts A list of node/peer hosts that can be chosen of, * usually a list of reliable/trusted nodes. This is necessary for the automatic node selection. * @param httpClientOptions {any} The optional request configuration for the passed Http client * @param httpClient {Http} It's possible to add a custom Http client adapter. Default is an Axios based implementation * @param apiVersion {ApiVersion} For future usage. * The default implementation uses axios. In case of a custom client pass your own options. * see [Axios Configuration](https://github.com/axios/axios#request-config) */ constructor(nodeHost, reliableNodeHosts, httpClientOptions, httpClient, apiVersion) { this.nodeHost = nodeHost; this.reliableNodeHosts = reliableNodeHosts; this.httpClientOptions = httpClientOptions; this.httpClient = httpClient; this.apiVersion = apiVersion; } } exports.ApiSettings = ApiSettings; /** * Composes the API, i.e. setup the environment and mounts the API structure * with its functions. * * ```ts * const api = composeApi(new ApiSettings('https://europe.signum.network')), // one of the mainnet nodes * ``` * * Note, that this method mounts the __entire__ API, i.e. all available methods. One may also customize the API composition * using {@link ApiComposer}. * * @param settings necessary execution context * @return The _complete_ API * */ function composeApi(settings) { const serviceSettings = { ...settings }; const service = new service_1.ChainService(serviceSettings); return apiComposer_1.ApiComposer .create(service) .withBlockApi({ getBlockByTimestamp: block_1.getBlockByTimestamp, getBlockByHeight: block_1.getBlockByHeight, getBlockById: block_1.getBlockById, getBlockId: block_1.getBlockId, getBlocks: block_1.getBlocks, }) .withNetworkApi({ getBlockchainStatus: network_1.getBlockchainStatus, getMiningInfo: network_1.getMiningInfo, getServerStatus: network_1.getServerStatus, getSuggestedFees: network_1.getSuggestedFees, getPeers: network_1.getPeers, getPeer: network_1.getPeer, getTime: network_1.getTime, getNetworkInfo: network_1.getNetworkInfo }) .withTransactionApi({ broadcastTransaction: transaction_1.broadcastTransaction, cancelSubscription: transaction_1.cancelSubscription, createSubscription: transaction_1.createSubscription, getDistributionAmountsFromTransaction: transaction_1.getDistributionAmountsFromTransaction, getSubscription: transaction_1.getSubscription, getTransaction: transaction_1.getTransaction, getTransactionByFullHash: transaction_1.getTransactionByFullHash, getUnconfirmedTransactions: transaction_1.getUnconfirmedTransactions, parseTransactionBytes: transaction_1.parseTransactionBytes, sendAmountToMultipleRecipients: transaction_1.sendAmountToMultipleRecipients, sendAmountToSingleRecipient: transaction_1.sendAmountToSingleRecipient, sendSameAmountToMultipleRecipients: transaction_1.sendSameAmountToMultipleRecipients, signAndBroadcastTransaction: transaction_1.signAndBroadcastTransaction, getSubscriptionPayments: transaction_1.getSubscriptionPayments, }) .withMessageApi({ sendMessage: message_1.sendMessage, sendEncryptedMessage: message_1.sendEncryptedMessage, }) .withAccountApi({ addCommitment: account_1.addCommitment, removeCommitment: account_1.removeCommitment, getAccountTransactions: account_1.getAccountTransactions, getAccountTransactionsFromSenderToRecipient: account_1.getAccountTransactionsFromSenderToRecipient, getAccountTransactionsBetweenSenderAndRecipient: account_1.getAccountTransactionsBetweenSenderAndRecipient, getAccountTransactionsFromSender: account_1.getAccountTransactionsFromSender, getAccountTransactionsToRecipient: account_1.getAccountTransactionsToRecipient, getUnconfirmedAccountTransactions: account_1.getUnconfirmedAccountTransactions, getAccountBalance: account_1.getAccountBalance, generateSendTransactionQRCode: account_1.generateSendTransactionQRCode, generateSendTransactionQRCodeAddress: account_1.generateSendTransactionQRCodeAddress, setAlias: account_1.setAlias, getAccount: account_1.getAccount, getAccountBlocks: account_1.getAccountBlocks, getAccountBlockIds: account_1.getAccountBlockIds, setAccountInfo: account_1.setAccountInfo, setRewardRecipient: account_1.setRewardRecipient, getAccountSubscriptions: account_1.getAccountSubscriptions, getSubscriptionsToAccount: account_1.getSubscriptionsToAccount, getRewardRecipient: account_1.getRewardRecipient, getTradeHistoryPerAccount: asset_1.getTradeHistoryPerAccount }).withAliasApi({ getAliasByName: alias_1.getAliasByName, getAliasById: alias_1.getAliasById, setAlias: account_1.setAlias, getAliasesOnSale: alias_1.getAliasesOnSale, buyAlias: alias_1.buyAlias, sellAlias: alias_1.sellAlias, getAliases: alias_1.getAliases, searchAliasesByName: alias_1.searchAliasesByName, getTopLevelDomains: alias_1.getTopLevelDomains, buyTopLevelDomain: alias_1.buyTopLevelDomain }).withContractApi({ getContract: contract_1.getContract, getContractsByAccount: contract_1.getContractsByAccount, getAllContractIds: contract_1.getAllContractIds, publishContract: contract_1.publishContract, publishContractByReference: contract_1.publishContractByReference, callContractMethod: contract_1.callContractMethod, getSingleContractMapValue: contract_1.getSingleContractMapValue, getContractMapValuesByFirstKey: contract_1.getContractMapValuesByFirstKey, getAllContractsByCodeHash: contract_1.getAllContractsByCodeHash }).withAssetApi({ getAsset: asset_1.getAsset, getAllTrades: asset_1.getAllTrades, getAssetTrades: asset_1.getAssetTrades, getAssetTradesPerAccount: asset_1.getAssetTradesPerAccount, getAssetTradesPerAsset: asset_1.getAssetTradesPerAsset, getAllAssets: asset_1.getAllAssets, issueAsset: asset_1.issueAsset, mintAsset: asset_1.mintAsset, burnAsset: asset_1.burnAsset, transferAsset: asset_1.transferAsset, transferAssetOwnership: asset_1.transferAssetOwnership, transferMultipleAssets: asset_1.transferMultipleAssets, placeAskOrder: asset_1.placeAskOrder, placeBidOrder: asset_1.placeBidOrder, cancelAskOrder: asset_1.cancelAskOrder, cancelBidOrder: asset_1.cancelBidOrder, getAssetHolders: asset_1.getAssetHolders, getAssetTransfers: asset_1.getAssetTransfers, getAssetTransfersPerAccount: asset_1.getAssetTransfersPerAccount, getAssetTransfersPerAsset: asset_1.getAssetTransfersPerAsset, addAssetTreasuryAccount: asset_1.addAssetTreasuryAccount, distributeToAssetHolders: asset_1.distributeToAssetHolders, getOpenBidOrders: asset_1.getOpenBidOrders, getOpenAskOrders: asset_1.getOpenAskOrders, getOpenBidOrdersPerAsset: asset_1.getOpenBidOrdersPerAsset, getOpenAskOrdersPerAsset: asset_1.getOpenAskOrdersPerAsset, getOpenBidOrdersPerAccount: asset_1.getOpenBidOrdersPerAccount, getOpenAskOrdersPerAccount: asset_1.getOpenAskOrdersPerAccount, getTradeHistoryPerAccount: asset_1.getTradeHistoryPerAccount, getAssetsByIssuer: asset_1.getAssetsByIssuer, getAssetsByOwner: asset_1.getAssetsByOwner, getAssetsByName: asset_1.getAssetsByName, calculateDistributionFee: asset_1.calculateDistributionFee, }) .compose(); } //# sourceMappingURL=composeApi.js.map