@volare.finance/nestjs.plugins 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aws/aws.config.d.ts +16 -0
- package/dist/aws/aws.config.js +3 -0
- package/dist/aws/aws.config.js.map +1 -0
- package/dist/aws/aws.module.d.ts +9 -0
- package/dist/aws/aws.module.js +28 -0
- package/dist/aws/aws.module.js.map +1 -0
- package/dist/aws/aws.service.d.ts +12 -0
- package/dist/aws/aws.service.js +66 -0
- package/dist/aws/aws.service.js.map +1 -0
- package/dist/aws/index.d.ts +7 -0
- package/dist/aws/index.js +11 -0
- package/dist/aws/index.js.map +1 -0
- package/dist/binance/binance.config.d.ts +10 -0
- package/dist/binance/binance.config.js +7 -0
- package/dist/binance/binance.config.js.map +1 -0
- package/dist/binance/binance.module.d.ts +9 -0
- package/dist/binance/binance.module.js +28 -0
- package/dist/binance/binance.module.js.map +1 -0
- package/dist/binance/binance.service.d.ts +46 -0
- package/dist/binance/binance.service.js +102 -0
- package/dist/binance/binance.service.js.map +1 -0
- package/dist/binance/index.d.ts +7 -0
- package/dist/binance/index.js +11 -0
- package/dist/binance/index.js.map +1 -0
- package/dist/coingecko/coingecko.config.d.ts +10 -0
- package/dist/coingecko/coingecko.config.js +7 -0
- package/dist/coingecko/coingecko.config.js.map +1 -0
- package/dist/coingecko/coingecko.module.d.ts +9 -0
- package/dist/coingecko/coingecko.module.js +28 -0
- package/dist/coingecko/coingecko.module.js.map +1 -0
- package/dist/coingecko/coingecko.service.d.ts +44 -0
- package/dist/coingecko/coingecko.service.js +46 -0
- package/dist/coingecko/coingecko.service.js.map +1 -0
- package/dist/coingecko/index.d.ts +7 -0
- package/dist/coingecko/index.js +11 -0
- package/dist/coingecko/index.js.map +1 -0
- package/dist/config/config.interface.d.ts +7 -0
- package/dist/config/config.interface.js +7 -0
- package/dist/config/config.interface.js.map +1 -0
- package/dist/config/config.module.d.ts +9 -0
- package/dist/config/config.module.js +25 -0
- package/dist/config/config.module.js.map +1 -0
- package/dist/config/config.service.d.ts +11 -0
- package/dist/config/config.service.js +26 -0
- package/dist/config/config.service.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.js +11 -0
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/lbank/index.d.ts +7 -0
- package/dist/lbank/index.js +11 -0
- package/dist/lbank/index.js.map +1 -0
- package/dist/lbank/lbank.config.d.ts +10 -0
- package/dist/lbank/lbank.config.js +7 -0
- package/dist/lbank/lbank.config.js.map +1 -0
- package/dist/lbank/lbank.module.d.ts +9 -0
- package/dist/lbank/lbank.module.js +28 -0
- package/dist/lbank/lbank.module.js.map +1 -0
- package/dist/lbank/lbank.service.d.ts +47 -0
- package/dist/lbank/lbank.service.js +93 -0
- package/dist/lbank/lbank.service.js.map +1 -0
- package/dist/logger/index.d.ts +7 -0
- package/dist/logger/index.js +11 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/logger.config.d.ts +17 -0
- package/dist/logger/logger.config.js +7 -0
- package/dist/logger/logger.config.js.map +1 -0
- package/dist/logger/logger.module.d.ts +9 -0
- package/dist/logger/logger.module.js +28 -0
- package/dist/logger/logger.module.js.map +1 -0
- package/dist/logger/logger.service.d.ts +19 -0
- package/dist/logger/logger.service.js +55 -0
- package/dist/logger/logger.service.js.map +1 -0
- package/dist/mexc/index.d.ts +7 -0
- package/dist/mexc/index.js +11 -0
- package/dist/mexc/index.js.map +1 -0
- package/dist/mexc/mexc.config.d.ts +10 -0
- package/dist/mexc/mexc.config.js +7 -0
- package/dist/mexc/mexc.config.js.map +1 -0
- package/dist/mexc/mexc.module.d.ts +9 -0
- package/dist/mexc/mexc.module.js +28 -0
- package/dist/mexc/mexc.module.js.map +1 -0
- package/dist/mexc/mexc.service.d.ts +53 -0
- package/dist/mexc/mexc.service.js +119 -0
- package/dist/mexc/mexc.service.js.map +1 -0
- package/dist/mongo/filter.dto.d.ts +10 -0
- package/dist/mongo/filter.dto.js +42 -0
- package/dist/mongo/filter.dto.js.map +1 -0
- package/dist/mongo/index.d.ts +6 -0
- package/dist/mongo/index.js +10 -0
- package/dist/mongo/index.js.map +1 -0
- package/dist/mongo/mongo.service.d.ts +10 -0
- package/dist/mongo/mongo.service.js +48 -0
- package/dist/mongo/mongo.service.js.map +1 -0
- package/dist/viabtc/index.d.ts +7 -0
- package/dist/viabtc/index.js +11 -0
- package/dist/viabtc/index.js.map +1 -0
- package/dist/viabtc/viabtc.config.d.ts +10 -0
- package/dist/viabtc/viabtc.config.js +7 -0
- package/dist/viabtc/viabtc.config.js.map +1 -0
- package/dist/viabtc/viabtc.module.d.ts +9 -0
- package/dist/viabtc/viabtc.module.js +28 -0
- package/dist/viabtc/viabtc.module.js.map +1 -0
- package/dist/viabtc/viabtc.service.d.ts +10 -0
- package/dist/viabtc/viabtc.service.js +41 -0
- package/dist/viabtc/viabtc.service.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file aws.config.ts
|
|
3
|
+
* @date 2023
|
|
4
|
+
*/
|
|
5
|
+
import { ObjectCannedACL } from '@aws-sdk/client-s3';
|
|
6
|
+
export interface AwsConfig {
|
|
7
|
+
aws: {
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
region: string;
|
|
10
|
+
accessKeyId: string;
|
|
11
|
+
secretAccessKey: string;
|
|
12
|
+
bucket: string;
|
|
13
|
+
acl: ObjectCannedACL;
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws.config.js","sourceRoot":"","sources":["../../src/aws/aws.config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file aws.module.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AwsModule = void 0;
|
|
8
|
+
const config_1 = require("../config");
|
|
9
|
+
const aws_service_1 = require("./aws.service");
|
|
10
|
+
class AwsModule {
|
|
11
|
+
static forRoot(options) {
|
|
12
|
+
return {
|
|
13
|
+
module: AwsModule,
|
|
14
|
+
imports: [config_1.ConfigModule.forRoot(options)],
|
|
15
|
+
exports: [aws_service_1.AwsService],
|
|
16
|
+
providers: [
|
|
17
|
+
{
|
|
18
|
+
provide: 'AwsConstant',
|
|
19
|
+
useFactory: (constant) => constant.config(),
|
|
20
|
+
inject: [config_1.ConfigService],
|
|
21
|
+
},
|
|
22
|
+
aws_service_1.AwsService,
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.AwsModule = AwsModule;
|
|
28
|
+
//# sourceMappingURL=aws.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws.module.js","sourceRoot":"","sources":["../../src/aws/aws.module.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,sCAAuE;AAEvE,+CAA2C;AAE3C,MAAa,SAAS;IACpB,MAAM,CAAC,OAAO,CAAC,OAAuB;QACpC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,CAAC,qBAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,wBAAU,CAAC;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,CAAC,QAAkC,EAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAC1E,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB;gBACD,wBAAU;aACX;SACF,CAAC;IACJ,CAAC;CACF;AAhBD,8BAgBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file aws.service.ts
|
|
3
|
+
* @date 2023
|
|
4
|
+
*/
|
|
5
|
+
import { AwsConfig } from './aws.config';
|
|
6
|
+
export declare class AwsService {
|
|
7
|
+
private readonly constant;
|
|
8
|
+
private readonly S3;
|
|
9
|
+
constructor(constant: AwsConfig);
|
|
10
|
+
putObject(file: any, filename: string, mimetype?: string): Promise<string>;
|
|
11
|
+
getObjectToString(filename: string): Promise<string>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file aws.service.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AwsService = void 0;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let AwsService = class AwsService {
|
|
12
|
+
constructor(constant) {
|
|
13
|
+
var _a;
|
|
14
|
+
this.constant = constant;
|
|
15
|
+
if ((_a = constant.aws) === null || _a === void 0 ? void 0 : _a.enabled) {
|
|
16
|
+
this.S3 = new client_s3_1.S3({
|
|
17
|
+
region: constant.aws.region,
|
|
18
|
+
credentials: {
|
|
19
|
+
accessKeyId: constant.aws.accessKeyId,
|
|
20
|
+
secretAccessKey: constant.aws.secretAccessKey,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
putObject(file, filename, mimetype) {
|
|
26
|
+
var _a;
|
|
27
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
if (!((_a = this.constant.aws) === null || _a === void 0 ? void 0 : _a.enabled)) {
|
|
29
|
+
throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.NOT_IMPLEMENTED);
|
|
30
|
+
}
|
|
31
|
+
const result = yield this.S3.putObject({
|
|
32
|
+
Key: filename,
|
|
33
|
+
Body: file,
|
|
34
|
+
ContentType: mimetype,
|
|
35
|
+
Bucket: this.constant.aws.bucket,
|
|
36
|
+
ACL: this.constant.aws.acl,
|
|
37
|
+
});
|
|
38
|
+
if (result.$metadata.httpStatusCode === 200) {
|
|
39
|
+
return this.constant.aws.baseUrl + '/' + filename;
|
|
40
|
+
}
|
|
41
|
+
throw new common_1.HttpException('Put object failed', common_1.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
getObjectToString(filename) {
|
|
45
|
+
var _a;
|
|
46
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
if (!((_a = this.constant.aws) === null || _a === void 0 ? void 0 : _a.enabled)) {
|
|
48
|
+
throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.NOT_IMPLEMENTED);
|
|
49
|
+
}
|
|
50
|
+
const result = yield this.S3.getObject({
|
|
51
|
+
Key: filename,
|
|
52
|
+
Bucket: this.constant.aws.bucket,
|
|
53
|
+
});
|
|
54
|
+
if (result.$metadata.httpStatusCode === 200 && result.Body) {
|
|
55
|
+
return result.Body.transformToString('utf-8');
|
|
56
|
+
}
|
|
57
|
+
throw new common_1.HttpException('Get object failed', common_1.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
AwsService = tslib_1.__decorate([
|
|
62
|
+
(0, common_1.Injectable)(),
|
|
63
|
+
tslib_1.__param(0, (0, common_1.Inject)('AwsConstant'))
|
|
64
|
+
], AwsService);
|
|
65
|
+
exports.AwsService = AwsService;
|
|
66
|
+
//# sourceMappingURL=aws.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws.service.js","sourceRoot":"","sources":["../../src/aws/aws.service.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,kDAAwC;AACxC,2CAA+E;AAIxE,IAAM,UAAU,GAAhB,MAAM,UAAU;IAKrB,YAAoD,QAAmB;;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QACrE,IAAI,MAAA,QAAQ,CAAC,GAAG,0CAAE,OAAO,EAAE;YACzB,IAAI,CAAC,EAAE,GAAG,IAAI,cAAE,CAAC;gBACf,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;gBAC3B,WAAW,EAAE;oBACX,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW;oBACrC,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe;iBAC9C;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAEK,SAAS,CAAC,IAAS,EAAE,QAAgB,EAAE,QAAiB;;;YAC5D,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,OAAO,CAAA,EAAE;gBAC/B,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,eAAe,CAAC,CAAC;aACtF;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBACrC,GAAG,EAAE,QAAQ;gBACb,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,QAAQ;gBACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;gBAChC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;aAC3B,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,KAAK,GAAG,EAAE;gBAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC;aACnD;YACD,MAAM,IAAI,sBAAa,CAAC,mBAAmB,EAAE,mBAAU,CAAC,qBAAqB,CAAC,CAAC;;KAChF;IAEK,iBAAiB,CAAC,QAAgB;;;YACtC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,OAAO,CAAA,EAAE;gBAC/B,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,eAAe,CAAC,CAAC;aACtF;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBACrC,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;aACjC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE;gBAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aAC/C;YACD,MAAM,IAAI,sBAAa,CAAC,mBAAmB,EAAE,mBAAU,CAAC,qBAAqB,CAAC,CAAC;;KAChF;CACF,CAAA;AA/CY,UAAU;IADtB,IAAA,mBAAU,GAAE;IAME,mBAAA,IAAA,eAAM,EAAC,aAAa,CAAC,CAAA;GALvB,UAAU,CA+CtB;AA/CY,gCAAU"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file index.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
8
|
+
tslib_1.__exportStar(require("./aws.config"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./aws.module"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./aws.service"), exports);
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uDAA6B;AAC7B,uDAA6B;AAC7B,wDAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binance.config.js","sourceRoot":"","sources":["../../src/binance/binance.config.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file binance.module.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BinanceModule = void 0;
|
|
8
|
+
const config_1 = require("../config");
|
|
9
|
+
const binance_service_1 = require("./binance.service");
|
|
10
|
+
class BinanceModule {
|
|
11
|
+
static forRoot(options) {
|
|
12
|
+
return {
|
|
13
|
+
module: BinanceModule,
|
|
14
|
+
imports: [config_1.ConfigModule.forRoot(options)],
|
|
15
|
+
exports: [binance_service_1.BinanceService],
|
|
16
|
+
providers: [
|
|
17
|
+
{
|
|
18
|
+
provide: 'BinanceConstant',
|
|
19
|
+
useFactory: (constant) => constant.config(),
|
|
20
|
+
inject: [config_1.ConfigService],
|
|
21
|
+
},
|
|
22
|
+
binance_service_1.BinanceService,
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.BinanceModule = BinanceModule;
|
|
28
|
+
//# sourceMappingURL=binance.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binance.module.js","sourceRoot":"","sources":["../../src/binance/binance.module.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,sCAAuE;AAEvE,uDAAmD;AAEnD,MAAa,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,OAAuB;QACpC,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,CAAC,qBAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,gCAAc,CAAC;YACzB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,UAAU,EAAE,CAAC,QAAsC,EAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAC9E,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB;gBACD,gCAAc;aACf;SACF,CAAC;IACJ,CAAC;CACF;AAhBD,sCAgBC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file binance.service.ts
|
|
3
|
+
* @date 2023
|
|
4
|
+
* @see https://binance-docs.github.io/apidocs/
|
|
5
|
+
*/
|
|
6
|
+
import { BinanceConfig } from './binance.config';
|
|
7
|
+
export declare class BinanceService {
|
|
8
|
+
private readonly constant;
|
|
9
|
+
constructor(constant: BinanceConfig);
|
|
10
|
+
/**
|
|
11
|
+
* Market Data - Current Average Price
|
|
12
|
+
* @param symbol e.g. BTCUSDT
|
|
13
|
+
* @see https://binance-docs.github.io/apidocs/spot/en/#current-average-price
|
|
14
|
+
*/
|
|
15
|
+
currentAveragePrice(symbol: string): Promise<{
|
|
16
|
+
mins: number;
|
|
17
|
+
price: string;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Market Data - 24hr Ticker Price Change Statistics
|
|
21
|
+
* @param symbol e.g. BTCUSDT
|
|
22
|
+
* @see https://binance-docs.github.io/apidocs/spot/en/#24hr-ticker-price-change-statistics
|
|
23
|
+
*/
|
|
24
|
+
tickerPrice24H(symbol: string): Promise<any>;
|
|
25
|
+
/**
|
|
26
|
+
* Market Data - Kline/Candlestick Data
|
|
27
|
+
* @param symbol e.g. BTCUSDT
|
|
28
|
+
* @param interval e.g. 1d
|
|
29
|
+
* @param startTime e.g. 1696089600000
|
|
30
|
+
* @param endTime e.g. 1698918180000
|
|
31
|
+
* @param limit e.g. 500
|
|
32
|
+
* @see https://binance-docs.github.io/apidocs/spot/en/#kline-candlestick-data
|
|
33
|
+
*/
|
|
34
|
+
marketKlines(symbol: string, interval: '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M', startTime?: string | number, endTime?: string | number, limit?: number): Promise<[number, string, string, string, string, string, number, string, number, string, string, string][]>;
|
|
35
|
+
/**
|
|
36
|
+
* Market Data - Order Book
|
|
37
|
+
* @param symbol e.g. BTCUSDT
|
|
38
|
+
* @param limit e.g. 500
|
|
39
|
+
* @see https://binance-docs.github.io/apidocs/spot/en/#order-book
|
|
40
|
+
*/
|
|
41
|
+
orderBook(symbol: string, limit?: number): Promise<{
|
|
42
|
+
lastUpdateId: number;
|
|
43
|
+
bids: [string, string][];
|
|
44
|
+
asks: [string, string][];
|
|
45
|
+
}>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file binance.service.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
* @see https://binance-docs.github.io/apidocs/
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.BinanceService = void 0;
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
12
|
+
let BinanceService = class BinanceService {
|
|
13
|
+
constructor(constant) {
|
|
14
|
+
this.constant = constant;
|
|
15
|
+
// do nothing
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Market Data - Current Average Price
|
|
19
|
+
* @param symbol e.g. BTCUSDT
|
|
20
|
+
* @see https://binance-docs.github.io/apidocs/spot/en/#current-average-price
|
|
21
|
+
*/
|
|
22
|
+
currentAveragePrice(symbol) {
|
|
23
|
+
var _a;
|
|
24
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
|
|
26
|
+
throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
|
|
27
|
+
}
|
|
28
|
+
return (yield (0, axios_1.default)({
|
|
29
|
+
method: 'GET',
|
|
30
|
+
url: this.constant.binance.url + '/api/v3/avgPrice',
|
|
31
|
+
params: { symbol },
|
|
32
|
+
})).data;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Market Data - 24hr Ticker Price Change Statistics
|
|
37
|
+
* @param symbol e.g. BTCUSDT
|
|
38
|
+
* @see https://binance-docs.github.io/apidocs/spot/en/#24hr-ticker-price-change-statistics
|
|
39
|
+
*/
|
|
40
|
+
tickerPrice24H(symbol) {
|
|
41
|
+
var _a;
|
|
42
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
|
|
44
|
+
throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
|
|
45
|
+
}
|
|
46
|
+
return (yield (0, axios_1.default)({
|
|
47
|
+
method: 'GET',
|
|
48
|
+
url: this.constant.binance.url + '/api/v3/ticker/24hr',
|
|
49
|
+
params: {
|
|
50
|
+
symbol,
|
|
51
|
+
},
|
|
52
|
+
})).data;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Market Data - Kline/Candlestick Data
|
|
57
|
+
* @param symbol e.g. BTCUSDT
|
|
58
|
+
* @param interval e.g. 1d
|
|
59
|
+
* @param startTime e.g. 1696089600000
|
|
60
|
+
* @param endTime e.g. 1698918180000
|
|
61
|
+
* @param limit e.g. 500
|
|
62
|
+
* @see https://binance-docs.github.io/apidocs/spot/en/#kline-candlestick-data
|
|
63
|
+
*/
|
|
64
|
+
marketKlines(symbol, interval, startTime, endTime, limit) {
|
|
65
|
+
var _a;
|
|
66
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
|
|
68
|
+
throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
|
|
69
|
+
}
|
|
70
|
+
return (yield (0, axios_1.default)({
|
|
71
|
+
method: 'GET',
|
|
72
|
+
url: this.constant.binance.url + '/api/v3/klines',
|
|
73
|
+
params: { symbol, interval, startTime, endTime, limit },
|
|
74
|
+
})).data;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Market Data - Order Book
|
|
79
|
+
* @param symbol e.g. BTCUSDT
|
|
80
|
+
* @param limit e.g. 500
|
|
81
|
+
* @see https://binance-docs.github.io/apidocs/spot/en/#order-book
|
|
82
|
+
*/
|
|
83
|
+
orderBook(symbol, limit) {
|
|
84
|
+
var _a;
|
|
85
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
|
|
87
|
+
throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
|
|
88
|
+
}
|
|
89
|
+
return (yield (0, axios_1.default)({
|
|
90
|
+
method: 'GET',
|
|
91
|
+
url: this.constant.binance.url + '/api/v3/depth',
|
|
92
|
+
params: { symbol, limit },
|
|
93
|
+
})).data;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
BinanceService = tslib_1.__decorate([
|
|
98
|
+
(0, common_1.Injectable)(),
|
|
99
|
+
tslib_1.__param(0, (0, common_1.Inject)('BinanceConstant'))
|
|
100
|
+
], BinanceService);
|
|
101
|
+
exports.BinanceService = BinanceService;
|
|
102
|
+
//# sourceMappingURL=binance.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binance.service.js","sourceRoot":"","sources":["../../src/binance/binance.service.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,2CAA+E;AAC/E,0DAA0B;AAInB,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAAwD,QAAuB;QAAvB,aAAQ,GAAR,QAAQ,CAAe;QAC7E,aAAa;IACf,CAAC;IAED;;;;OAIG;IACG,mBAAmB,CAAC,MAAc;;;YACtC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAE;gBACnC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,OAAO,CACL,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,kBAAkB;gBACnD,MAAM,EAAE,EAAE,MAAM,EAAE;aACnB,CAAC,CACH,CAAC,IAAI,CAAC;;KACR;IAED;;;;OAIG;IACG,cAAc,CAAC,MAAc;;;YACjC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAE;gBACnC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,OAAO,CACL,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,qBAAqB;gBACtD,MAAM,EAAE;oBACN,MAAM;iBACP;aACF,CAAC,CACH,CAAC,IAAI,CAAC;;KACR;IAED;;;;;;;;OAQG;IACG,YAAY,CAChB,MAAc,EACd,QAAmH,EACnH,SAA2B,EAC3B,OAAyB,EACzB,KAAc;;;YAEd,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAE;gBACnC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,OAAO,CACL,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,gBAAgB;gBACjD,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;aACxD,CAAC,CACH,CAAC,IAAI,CAAC;;KACR;IAED;;;;;OAKG;IACG,SAAS,CAAC,MAAc,EAAE,KAAc;;;YAC5C,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAE;gBACnC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,OAAO,CACL,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe;gBAChD,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;aAC1B,CAAC,CACH,CAAC,IAAI,CAAC;;KACR;CACF,CAAA;AAzFY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAEE,mBAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;GAD3B,cAAc,CAyF1B;AAzFY,wCAAc"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file index.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
8
|
+
tslib_1.__exportStar(require("./binance.config"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./binance.module"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./binance.service"), exports);
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/binance/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAiC;AACjC,2DAAiC;AACjC,4DAAkC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coingecko.config.js","sourceRoot":"","sources":["../../src/coingecko/coingecko.config.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file coingecko.module.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.CoinGeckoModule = void 0;
|
|
8
|
+
const config_1 = require("../config");
|
|
9
|
+
const coingecko_service_1 = require("./coingecko.service");
|
|
10
|
+
class CoinGeckoModule {
|
|
11
|
+
static forRoot(options) {
|
|
12
|
+
return {
|
|
13
|
+
module: CoinGeckoModule,
|
|
14
|
+
imports: [config_1.ConfigModule.forRoot(options)],
|
|
15
|
+
exports: [coingecko_service_1.CoinGeckoService],
|
|
16
|
+
providers: [
|
|
17
|
+
{
|
|
18
|
+
provide: 'CoinGeckoConstant',
|
|
19
|
+
useFactory: (constant) => constant.config(),
|
|
20
|
+
inject: [config_1.ConfigService],
|
|
21
|
+
},
|
|
22
|
+
coingecko_service_1.CoinGeckoService,
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.CoinGeckoModule = CoinGeckoModule;
|
|
28
|
+
//# sourceMappingURL=coingecko.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coingecko.module.js","sourceRoot":"","sources":["../../src/coingecko/coingecko.module.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,sCAAuE;AACvE,2DAAuD;AAEvD,MAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,OAAuB;QACpC,OAAO;YACL,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,CAAC,qBAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,oCAAgB,CAAC;YAC3B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE,CAAC,QAAwC,EAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAChF,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB;gBACD,oCAAgB;aACjB;SACF,CAAC;IACJ,CAAC;CACF;AAhBD,0CAgBC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file coingecko.service.ts
|
|
3
|
+
* @date 2023
|
|
4
|
+
* @see https://www.coingecko.com/api/documentation
|
|
5
|
+
*/
|
|
6
|
+
import { CoinGeckoConfig } from './coingecko.config';
|
|
7
|
+
export declare class CoinGeckoService {
|
|
8
|
+
private readonly constant;
|
|
9
|
+
constructor(constant: CoinGeckoConfig);
|
|
10
|
+
/**
|
|
11
|
+
* supported coins price, market cap, volume, and market related data
|
|
12
|
+
* @param ids e.g. bitcoin
|
|
13
|
+
* @param vs_currency e.g. usd, eur,jpy, etc.
|
|
14
|
+
* @see https://www.coingecko.com/api/documentation
|
|
15
|
+
*/
|
|
16
|
+
coinMarket(ids: string, vs_currency?: string): Promise<{
|
|
17
|
+
id: string;
|
|
18
|
+
symbol: string;
|
|
19
|
+
name: string;
|
|
20
|
+
image: string;
|
|
21
|
+
current_price: number;
|
|
22
|
+
market_cap: number;
|
|
23
|
+
market_cap_rank: number;
|
|
24
|
+
fully_diluted_valuation: number;
|
|
25
|
+
total_volume: number;
|
|
26
|
+
high_24h: number;
|
|
27
|
+
low_24h: number;
|
|
28
|
+
price_change_24h: number;
|
|
29
|
+
price_change_percentage_24h: number;
|
|
30
|
+
market_cap_change_24h: number;
|
|
31
|
+
market_cap_change_percentage_24h: number;
|
|
32
|
+
circulating_supply: number;
|
|
33
|
+
total_supply: number;
|
|
34
|
+
max_supply: number;
|
|
35
|
+
ath: number;
|
|
36
|
+
ath_change_percentage: number;
|
|
37
|
+
ath_date: string;
|
|
38
|
+
atl: number;
|
|
39
|
+
atl_change_percentage: number;
|
|
40
|
+
atl_date: string;
|
|
41
|
+
roi: number;
|
|
42
|
+
last_updated: string;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file coingecko.service.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
* @see https://www.coingecko.com/api/documentation
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.CoinGeckoService = void 0;
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
12
|
+
let CoinGeckoService = class CoinGeckoService {
|
|
13
|
+
constructor(constant) {
|
|
14
|
+
this.constant = constant;
|
|
15
|
+
// do nothing
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* supported coins price, market cap, volume, and market related data
|
|
19
|
+
* @param ids e.g. bitcoin
|
|
20
|
+
* @param vs_currency e.g. usd, eur,jpy, etc.
|
|
21
|
+
* @see https://www.coingecko.com/api/documentation
|
|
22
|
+
*/
|
|
23
|
+
coinMarket(ids, vs_currency = 'usd') {
|
|
24
|
+
var _a;
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
if (!((_a = this.constant.coingecko) === null || _a === void 0 ? void 0 : _a.enabled)) {
|
|
27
|
+
throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
|
|
28
|
+
}
|
|
29
|
+
const response = yield (0, axios_1.default)({
|
|
30
|
+
method: 'GET',
|
|
31
|
+
url: this.constant.coingecko.url + '/api/v3/coins/markets',
|
|
32
|
+
params: { ids, vs_currency },
|
|
33
|
+
});
|
|
34
|
+
if (response.data.length) {
|
|
35
|
+
return response.data[0];
|
|
36
|
+
}
|
|
37
|
+
throw new common_1.HttpException(response.statusText, response.status);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
CoinGeckoService = tslib_1.__decorate([
|
|
42
|
+
(0, common_1.Injectable)(),
|
|
43
|
+
tslib_1.__param(0, (0, common_1.Inject)('CoinGeckoConstant'))
|
|
44
|
+
], CoinGeckoService);
|
|
45
|
+
exports.CoinGeckoService = CoinGeckoService;
|
|
46
|
+
//# sourceMappingURL=coingecko.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coingecko.service.js","sourceRoot":"","sources":["../../src/coingecko/coingecko.service.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,2CAA+E;AAC/E,0DAA0B;AAInB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAA0D,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;QACjF,aAAa;IACf,CAAC;IAED;;;;;OAKG;IACG,UAAU,CACd,GAAW,EACX,WAAW,GAAG,KAAK;;;YA6BnB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,0CAAE,OAAO,CAAA,EAAE;gBACrC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;gBAC3B,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,uBAAuB;gBAC1D,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;aAC7B,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACzB;YACD,MAAM,IAAI,sBAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;;KAC/D;CACF,CAAA;AAvDY,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAEE,mBAAA,IAAA,eAAM,EAAC,mBAAmB,CAAC,CAAA;GAD7B,gBAAgB,CAuD5B;AAvDY,4CAAgB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file index.ts
|
|
4
|
+
* @date 2023
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
8
|
+
tslib_1.__exportStar(require("./coingecko.config"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./coingecko.module"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./coingecko.service"), exports);
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coingecko/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6DAAmC;AACnC,6DAAmC;AACnC,8DAAoC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.interface.js","sourceRoot":"","sources":["../../src/config/config.interface.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|