@hashgraph/sdk
Version:
165 lines (147 loc) • 4.6 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _WebClient = _interopRequireDefault(require("./client/WebClient.cjs"));
var _AccountBalanceQuery = _interopRequireDefault(require("./account/AccountBalanceQuery.cjs"));
var _AccountInfoQuery = _interopRequireDefault(require("./account/AccountInfoQuery.cjs"));
var _AccountRecordsQuery = _interopRequireDefault(require("./account/AccountRecordsQuery.cjs"));
var _TransactionReceiptQuery = _interopRequireDefault(require("./transaction/TransactionReceiptQuery.cjs"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
// SPDX-License-Identifier: Apache-2.0
/**
* @typedef {import("./Provider.js").Provider} Provider
* @typedef {import("./LedgerId.js").default} LedgerId
* @typedef {import("./Key.js").default} Key
* @typedef {import("./transaction/Transaction.js").default} Transaction
* @typedef {import("./transaction/TransactionId.js").default} TransactionId
* @typedef {import("./transaction/TransactionResponse.js").default} TransactionResponse
* @typedef {import("./transaction/TransactionReceipt.js").default} TransactionReceipt
* @typedef {import("./transaction/TransactionRecord.js").default} TransactionRecord
* @typedef {import("./account/AccountId.js").default} AccountId
* @typedef {import("./account/AccountBalance.js").default} AccountBalance
* @typedef {import("./account/AccountInfo.js").default} AccountInfo
* @typedef {import("./logger/Logger.js").default} Logger
*/
/**
* @template {any} O
* @typedef {import("./query/Query.js").default<O>} Query<O>
*/
/**
* @template RequestT
* @template ResponseT
* @template OutputT
* @typedef {import("./Executable.js").default<RequestT, ResponseT, OutputT>} Executable<RequestT, ResponseT, OutputT>
*/
/**
* @implements {Provider}
*/
class LocalProviderWeb {
/**
* @param {object} props
* @param {Client} [props.client]
* @param {"mainnet" | "testnet" | "previewnet" | "local-node"} [props.networkName]
*/
constructor(props = {}) {
if (props != null && props.client != null) {
this._client = props.client;
return;
}
this._client = _WebClient.default.forName(props.networkName || "local-node");
}
/**
* @param {Client} client
* @returns {LocalProviderWeb}
*/
static fromClient(client) {
return new LocalProviderWeb({
client
});
}
/**
* @returns {LedgerId?}
*/
getLedgerId() {
return this._client.ledgerId;
}
/**
* @returns {{[key: string]: (string | AccountId)}}
*/
getNetwork() {
return this._client.network;
}
/**
* @returns {string[]}
*/
getMirrorNetwork() {
return this._client.mirrorNetwork;
}
/**
* @param {AccountId | string} accountId
* @returns {Promise<AccountBalance>}
*/
getAccountBalance(accountId) {
return new _AccountBalanceQuery.default().setAccountId(accountId).execute(this._client);
}
/**
* @param {AccountId | string} accountId
* @returns {Promise<AccountInfo>}
*/
getAccountInfo(accountId) {
return new _AccountInfoQuery.default().setAccountId(accountId).execute(this._client);
}
/**
* @param {AccountId | string} accountId
* @returns {Promise<TransactionRecord[]>}
*/
getAccountRecords(accountId) {
return new _AccountRecordsQuery.default().setAccountId(accountId).execute(this._client);
}
/**
* @param {TransactionId | string} transactionId
* @returns {Promise<TransactionReceipt>}
*/
getTransactionReceipt(transactionId) {
return new _TransactionReceiptQuery.default().setTransactionId(transactionId).execute(this._client);
}
/**
* @param {Transaction} transaction
* @returns {Promise<TransactionResponse>}
*/
async sendTransaction(transaction) {
return await transaction.execute(this._client);
}
/**
* @template O
* @param {Query<O>} query
* @returns {Promise<O>}
*/
async sendQuery(query) {
return await query.execute(this._client);
}
/**
* @param {TransactionResponse} response
* @returns {Promise<TransactionReceipt>}
*/
async waitForReceipt(response) {
return await response.getReceipt(this._client);
}
/**
* @template RequestT
* @template ResponseT
* @template OutputT
* @param {Executable<RequestT, ResponseT, OutputT>} request
* @returns {Promise<OutputT>}
*/
async call(request) {
return await request.execute(this._client);
}
/**
* @returns {void}
*/
close() {
this._client.close();
}
}
exports.default = LocalProviderWeb;
;