@pgchain/blockchain-libs
Version:
PGWallet Blockchain Libs
94 lines • 3.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseProvider = exports.SimpleClient = exports.BaseClient = void 0;
const exceptions_1 = require("../basic/exceptions");
class BaseClient {
setChainInfo(chainInfo) {
this.chainInfo = chainInfo;
}
getTokenInfos(tokenAddresses) {
return Promise.reject(exceptions_1.NotImplementedError);
}
getUTXOs(addresses) {
return Promise.reject(exceptions_1.NotImplementedError);
}
}
exports.BaseClient = BaseClient;
class SimpleClient extends BaseClient {
async batchCall2SingleCall(inputs, handler) {
const ret = await Promise.all(inputs.map((input) => handler(input).then((value) => value, (reason) => {
console.debug(`Error in Calling ${handler.name}. `, ' input: ', input, ', reason', reason);
return undefined;
})));
return ret;
}
async getAddresses(addresses) {
return this.batchCall2SingleCall(addresses, (i) => this.getAddress(i));
}
getBalances(requests) {
return this.batchCall2SingleCall(requests, (i) => this.getBalance(i.address, i.coin));
}
getBalance(address, coin) {
return this.getAddress(address).then((res) => res.balance);
}
getTransactionStatuses(txids) {
return this.batchCall2SingleCall(txids, (i) => this.getTransactionStatus(i));
}
getTokenInfos(tokenAddresses) {
return this.batchCall2SingleCall(tokenAddresses, (i) => this.getTokenInfo(i));
}
getTokenInfo(tokenAddress) {
return Promise.reject(exceptions_1.NotImplementedError);
}
async getUTXOs(addresses) {
const result = await this.batchCall2SingleCall(addresses, (i) => this.getUTXO(i));
return result.reduce((acc, utxos, index) => {
const curAddress = addresses[index];
acc[curAddress] = utxos || [];
return acc;
}, {});
}
getUTXO(address) {
return Promise.reject(exceptions_1.NotImplementedError);
}
}
exports.SimpleClient = SimpleClient;
class BaseProvider {
constructor(chainInfo, clientSelector) {
this.chainInfo = chainInfo;
this.clientSelector = clientSelector;
}
verifyTokenAddress(address) {
return this.verifyAddress(address);
}
signMessage(message, signer, address) {
return Promise.reject(exceptions_1.NotImplementedError);
}
verifyMessage(address, message, signature) {
return Promise.reject(exceptions_1.NotImplementedError);
}
async wrapHardwareCall(callee) {
const resp = await callee();
if (!resp.success) {
throw new exceptions_1.HardwareError(resp.payload);
}
return resp.payload;
}
hardwareGetXpubs(paths, showOnDevice) {
return Promise.reject(exceptions_1.NotImplementedError);
}
hardwareGetAddress(path, showOnDevice, addressToVerify) {
return Promise.reject(exceptions_1.NotImplementedError);
}
hardwareSignTransaction(unsignedTx, signers) {
return Promise.reject(exceptions_1.NotImplementedError);
}
hardwareSignMessage(message, signer) {
return Promise.reject(exceptions_1.NotImplementedError);
}
hardwareVerifyMessage(address, message, signature) {
return Promise.reject(exceptions_1.NotImplementedError);
}
}
exports.BaseProvider = BaseProvider;
//# sourceMappingURL=abc.js.map