UNPKG

@tatumio/algo-connector

Version:

ALGO Connector for Tatum API

321 lines (320 loc) 14.9 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AlgoController = void 0; const common_1 = require("@nestjs/common"); const blockchain_connector_common_1 = require("@tatumio/blockchain-connector-common"); const AlgoError_1 = require("./AlgoError"); const GeneratePrivateKey_1 = require("./dto/GeneratePrivateKey"); const PathRoundNumber_1 = require("./dto/PathRoundNumber"); const PathTransactionId_1 = require("./dto/PathTransactionId"); const tatum_1 = require("@tatumio/tatum"); const PathFromTo_1 = require("./PathFromTo"); const Pagination_1 = require("./Pagination"); class AlgoController { constructor(service) { this.service = service; } async nodeGetIndexer(req, param) { var _a, _b; try { return await this.service.nodeMethod(req, param.key, blockchain_connector_common_1.AlgoNodeType.INDEXER); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${((_a = e.message) === null || _a === void 0 ? void 0 : _a.message) || ((_b = e.response) === null || _b === void 0 ? void 0 : _b.data) || e.message || e}`, 'Algo.error'); } } async nodePostIndexer(req, param) { var _a, _b; try { return await this.service.nodeMethod(req, param.key, blockchain_connector_common_1.AlgoNodeType.INDEXER); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${((_a = e.message) === null || _a === void 0 ? void 0 : _a.message) || ((_b = e.response) === null || _b === void 0 ? void 0 : _b.data) || e.message || e}`, 'Algo.error'); } } async nodeGetAlgod(req, param) { var _a, _b; try { return await this.service.nodeMethod(req, param.key, blockchain_connector_common_1.AlgoNodeType.ALGOD); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${((_a = e.message) === null || _a === void 0 ? void 0 : _a.message) || ((_b = e.response) === null || _b === void 0 ? void 0 : _b.data) || e.message || e}`, 'Algo.error'); } } async nodePostAlgod(req, param) { var _a, _b; try { return await this.service.nodeMethod(req, param.key, blockchain_connector_common_1.AlgoNodeType.ALGOD); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${((_a = e.message) === null || _a === void 0 ? void 0 : _a.message) || ((_b = e.response) === null || _b === void 0 ? void 0 : _b.data) || e.message || e}`, 'Algo.error'); } } async generateWallet(query) { var _a; try { return await this.service.generateWallet(query.mnemonic); } catch (e) { throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } async generateAddress({ fromPrivateKey }) { var _a; try { return await this.service.generateAddress(fromPrivateKey); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } async getAccountBalance(param) { var _a; try { return await this.service.getBalance(param.address); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } async sendTransaction(body) { var _a; try { return await this.service.sendTransaction(body); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } async broadcast(body) { var _a; try { return await this.service.broadcast(body.txData, body.signatureId); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } async getInfo() { var _a; try { return await this.service.getCurrentBlock(); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } async getBlock({ roundNumber }) { var _a; try { return await this.service.getBlock(Number(roundNumber)); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } async getTransaction({ txid }) { var _a; try { return await this.service.getTransaction(txid); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } async getPayTransactions({ from, to }, { limit, next }) { var _a; try { return await this.service.getPayTransactions(from, to, limit, next); } catch (e) { if (['Array', 'ValidationError'].includes(e.constructor.name)) { throw new common_1.BadRequestException(e); } if (e.constructor.name === 'TatumError' || e.constructor.name === AlgoError_1.AlgoError.name) { throw e; } throw new AlgoError_1.AlgoError(`Unexpected error occurred. Reason: ${e.message || ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data) || e}`, 'algo.error'); } } } __decorate([ common_1.Get('/node/indexer/:key/*'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Req()), __param(1, common_1.Param()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "nodeGetIndexer", null); __decorate([ common_1.Post('/node/indexer/:key/*'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Req()), __param(1, common_1.Param()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "nodePostIndexer", null); __decorate([ common_1.Get('/node/algod/:key/*'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Req()), __param(1, common_1.Param()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "nodeGetAlgod", null); __decorate([ common_1.Post('/node/algod/:key/*'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Req()), __param(1, common_1.Param()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "nodePostAlgod", null); __decorate([ common_1.Get('/wallet'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Query()), __metadata("design:type", Function), __metadata("design:paramtypes", [blockchain_connector_common_1.QueryMnemonic]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "generateWallet", null); __decorate([ common_1.Get('/address/:fromPrivateKey'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Param()), __metadata("design:type", Function), __metadata("design:paramtypes", [GeneratePrivateKey_1.GeneratePrivateKey]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "generateAddress", null); __decorate([ common_1.Get('/account/balance/:address'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Param()), __metadata("design:type", Function), __metadata("design:paramtypes", [blockchain_connector_common_1.PathAddress]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "getAccountBalance", null); __decorate([ common_1.Post('/transaction'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Body()), __metadata("design:type", Function), __metadata("design:paramtypes", [tatum_1.AlgoTransaction]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "sendTransaction", null); __decorate([ common_1.Post('/broadcast'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Body()), __metadata("design:type", Function), __metadata("design:paramtypes", [tatum_1.BroadcastTx]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "broadcast", null); __decorate([ common_1.Get('/block/current'), common_1.HttpCode(common_1.HttpStatus.OK), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise) ], AlgoController.prototype, "getInfo", null); __decorate([ common_1.Get('/block/:roundNumber'), common_1.HttpCode(common_1.HttpStatus.OK), __param(0, common_1.Param()), __metadata("design:type", Function), __metadata("design:paramtypes", [PathRoundNumber_1.PathRountNumber]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "getBlock", null); __decorate([ common_1.Get('/transaction/:txid'), __param(0, common_1.Param()), __metadata("design:type", Function), __metadata("design:paramtypes", [PathTransactionId_1.PathTransactionId]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "getTransaction", null); __decorate([ common_1.Get('/transactions/:from/:to'), __param(0, common_1.Param()), __param(1, common_1.Query()), __metadata("design:type", Function), __metadata("design:paramtypes", [PathFromTo_1.PathFromTo, Pagination_1.Pagination]), __metadata("design:returntype", Promise) ], AlgoController.prototype, "getPayTransactions", null); exports.AlgoController = AlgoController;