hive-stream 2.0.2 → 2.0.5

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.
Files changed (88) hide show
  1. package/.env +3 -1
  2. package/.env.example +3 -2
  3. package/.travis.yml +11 -11
  4. package/LICENSE +21 -21
  5. package/README.md +238 -236
  6. package/dist/actions.d.ts +10 -9
  7. package/dist/actions.js +23 -15
  8. package/dist/actions.js.map +1 -1
  9. package/dist/adapters/base.adapter.d.ts +25 -21
  10. package/dist/adapters/base.adapter.js +49 -63
  11. package/dist/adapters/base.adapter.js.map +1 -1
  12. package/dist/adapters/mongodb.adapter.d.ts +37 -29
  13. package/dist/adapters/mongodb.adapter.js +158 -113
  14. package/dist/adapters/mongodb.adapter.js.map +1 -1
  15. package/dist/adapters/sqlite.adapter.d.ts +41 -23
  16. package/dist/adapters/sqlite.adapter.js +397 -121
  17. package/dist/adapters/sqlite.adapter.js.map +1 -1
  18. package/dist/api.d.ts +6 -0
  19. package/dist/api.js +56 -0
  20. package/dist/api.js.map +1 -0
  21. package/dist/config.d.ts +16 -14
  22. package/dist/config.js +18 -15
  23. package/dist/config.js.map +1 -1
  24. package/dist/contracts/coinflip.contract.d.ts +14 -0
  25. package/dist/contracts/coinflip.contract.js +95 -0
  26. package/dist/contracts/coinflip.contract.js.map +1 -0
  27. package/dist/contracts/dice.contract.d.ts +29 -29
  28. package/dist/contracts/dice.contract.js +155 -157
  29. package/dist/contracts/dice.contract.js.map +1 -1
  30. package/dist/contracts/lotto.contract.d.ts +20 -16
  31. package/dist/contracts/lotto.contract.js +246 -107
  32. package/dist/contracts/lotto.contract.js.map +1 -1
  33. package/dist/exchanges/bittrex.d.ts +6 -0
  34. package/dist/exchanges/bittrex.js +35 -0
  35. package/dist/exchanges/bittrex.js.map +1 -0
  36. package/dist/exchanges/exchange.d.ts +9 -0
  37. package/dist/exchanges/exchange.js +27 -0
  38. package/dist/exchanges/exchange.js.map +1 -0
  39. package/dist/hive-rates.d.ts +9 -0
  40. package/dist/hive-rates.js +76 -0
  41. package/dist/hive-rates.js.map +1 -0
  42. package/dist/index.d.ts +11 -10
  43. package/dist/index.js +32 -15
  44. package/dist/index.js.map +1 -1
  45. package/dist/streamer.d.ts +93 -70
  46. package/dist/streamer.js +545 -439
  47. package/dist/streamer.js.map +1 -1
  48. package/dist/test.d.ts +1 -1
  49. package/dist/test.js +25 -27
  50. package/dist/test.js.map +1 -1
  51. package/dist/types/hive-stream.d.ts +6 -6
  52. package/dist/types/hive-stream.js +2 -2
  53. package/dist/utils.d.ts +27 -14
  54. package/dist/utils.js +261 -85
  55. package/dist/utils.js.map +1 -1
  56. package/ecosystem.config.js +17 -17
  57. package/jest.config.js +9 -14
  58. package/package.json +48 -40
  59. package/test-contract-block.md +18 -18
  60. package/tests/adapters/sqlite.adapter.spec.ts +43 -0
  61. package/tests/contracts/coinflip.contract.spec.ts +132 -0
  62. package/tests/contracts/dice.contract.spec.ts +160 -0
  63. package/tests/contracts/entrants.json +729 -0
  64. package/tests/contracts/lotto.contract.spec.ts +324 -0
  65. package/tests/setup.ts +19 -0
  66. package/tests/streamer.spec.ts +152 -0
  67. package/tests/utils.spec.ts +95 -0
  68. package/tsconfig.build.json +22 -19
  69. package/tslint.json +20 -20
  70. package/wallaby.js +26 -0
  71. package/dist/adapters/file.adapter.d.ts +0 -8
  72. package/dist/adapters/file.adapter.js +0 -70
  73. package/dist/adapters/file.adapter.js.map +0 -1
  74. package/dist/test/setup.d.ts +0 -0
  75. package/dist/test/setup.js +0 -9
  76. package/dist/test/setup.js.map +0 -1
  77. package/dist/test/streamer.spec.d.ts +0 -1
  78. package/dist/test/streamer.spec.js +0 -145
  79. package/dist/test/streamer.spec.js.map +0 -1
  80. package/dist/test/utils.spec.d.ts +0 -1
  81. package/dist/test/utils.spec.js +0 -11
  82. package/dist/test/utils.spec.js.map +0 -1
  83. package/hive-stream.json +0 -1
  84. package/test/contracts/dice.contract.spec.ts +0 -253
  85. package/test/contracts/lotto.contract.spec.ts +0 -61
  86. package/test/setup.ts +0 -9
  87. package/test/streamer.spec.ts +0 -348
  88. package/test/utils.spec.ts +0 -12
@@ -1,21 +1,25 @@
1
- import { TimeAction } from './../actions';
2
- import { ContractPayload } from './../types/hive-stream';
3
- import { SignedBlock } from '@hivechain/dhive';
4
- export declare class AdapterBase {
5
- constructor();
6
- protected create(): Promise<boolean>;
7
- protected destroy(): Promise<boolean>;
8
- protected loadActions(): Promise<TimeAction[]>;
9
- protected loadState(): Promise<any>;
10
- protected saveState(data: any): Promise<boolean | any>;
11
- protected processBlock(block: SignedBlock): Promise<any>;
12
- protected processOperation(op: any, blockNumber: number, blockId: string, prevBlockId: string, trxId: string, blockTime: Date): Promise<any>;
13
- protected processTransfer(operation: any, payload: ContractPayload, metadata: {
14
- sender: string;
15
- amount: string;
16
- }): Promise<boolean>;
17
- protected processCustomJson(operation: any, payload: ContractPayload, metadata: {
18
- sender: string;
19
- isSignedWithActiveKey: boolean;
20
- }): Promise<boolean>;
21
- }
1
+ import { TimeAction } from './../actions';
2
+ import { ContractPayload } from './../types/hive-stream';
3
+ import { SignedBlock } from '@hiveio/dhive';
4
+ export declare class AdapterBase {
5
+ constructor();
6
+ create(): Promise<boolean>;
7
+ destroy(): Promise<boolean>;
8
+ loadActions(): Promise<TimeAction[]>;
9
+ loadState(): Promise<any>;
10
+ saveState(data: any): Promise<boolean | any>;
11
+ processBlock(block: SignedBlock): Promise<any>;
12
+ processOperation(op: any, blockNumber: number, blockId: string, prevBlockId: string, trxId: string, blockTime: Date): Promise<any>;
13
+ processTransfer(operation: any, payload: ContractPayload, metadata: {
14
+ sender: string;
15
+ amount: string;
16
+ }): Promise<boolean>;
17
+ processCustomJson(operation: any, payload: ContractPayload, metadata: {
18
+ sender: string;
19
+ isSignedWithActiveKey: boolean;
20
+ }): Promise<boolean>;
21
+ find(table: string, queryObject: any): Promise<any>;
22
+ findOne(table: string, queryObject: any): Promise<any>;
23
+ insert(table: string, data: any): Promise<any>;
24
+ replace(table: string, queryObject: any, data: any): Promise<any>;
25
+ }
@@ -1,64 +1,50 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- class AdapterBase {
13
- constructor() {
14
- this['client'] = null;
15
- this['db'] = null;
16
- }
17
- create() {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- return true;
20
- });
21
- }
22
- destroy() {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- return true;
25
- });
26
- }
27
- loadActions() {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- return [];
30
- });
31
- }
32
- loadState() {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- throw new Error('Load state method not implemented in adapter');
35
- });
36
- }
37
- saveState(data) {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- throw new Error('Save state method not implemented in adapter');
40
- });
41
- }
42
- processBlock(block) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- return true;
45
- });
46
- }
47
- processOperation(op, blockNumber, blockId, prevBlockId, trxId, blockTime) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- return true;
50
- });
51
- }
52
- processTransfer(operation, payload, metadata) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- return true;
55
- });
56
- }
57
- processCustomJson(operation, payload, metadata) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- return true;
60
- });
61
- }
62
- }
63
- exports.AdapterBase = AdapterBase;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdapterBase = void 0;
4
+ class AdapterBase {
5
+ constructor() {
6
+ this['client'] = null;
7
+ this['db'] = null;
8
+ }
9
+ async create() {
10
+ return true;
11
+ }
12
+ async destroy() {
13
+ return true;
14
+ }
15
+ async loadActions() {
16
+ return [];
17
+ }
18
+ async loadState() {
19
+ throw new Error('Load state method not implemented in adapter');
20
+ }
21
+ async saveState(data) {
22
+ throw new Error('Save state method not implemented in adapter');
23
+ }
24
+ async processBlock(block) {
25
+ return true;
26
+ }
27
+ async processOperation(op, blockNumber, blockId, prevBlockId, trxId, blockTime) {
28
+ return true;
29
+ }
30
+ async processTransfer(operation, payload, metadata) {
31
+ return true;
32
+ }
33
+ async processCustomJson(operation, payload, metadata) {
34
+ return true;
35
+ }
36
+ async find(table, queryObject) {
37
+ return true;
38
+ }
39
+ async findOne(table, queryObject) {
40
+ return true;
41
+ }
42
+ async insert(table, data) {
43
+ return true;
44
+ }
45
+ async replace(table, queryObject, data) {
46
+ return true;
47
+ }
48
+ }
49
+ exports.AdapterBase = AdapterBase;
64
50
  //# sourceMappingURL=base.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../src/adapters/base.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,MAAa,WAAW;IACpB;QACI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtB,CAAC;IAEe,MAAM;;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEe,OAAO;;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEe,WAAW;;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;KAAA;IAEe,SAAS;;YACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;KAAA;IAEe,SAAS,CAAC,IAAS;;YAC/B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;KAAA;IAEe,YAAY,CAAC,KAAkB;;YAC3C,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEe,gBAAgB,CAAC,EAAO,EAAE,WAAmB,EAAE,OAAe,EAAE,WAAmB,EAAE,KAAa,EAAE,SAAe;;YAC/H,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEe,eAAe,CAAC,SAAS,EAAE,OAAwB,EAAE,QAA4C;;YAC7G,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEe,iBAAiB,CAAC,SAAS,EAAE,OAAwB,EAAE,QAA4D;;YAC/H,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;CACJ;AAzCD,kCAyCC"}
1
+ {"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../src/adapters/base.adapter.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IACpB;QACI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,WAAW;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAS;QAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAkB;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,EAAO,EAAE,WAAmB,EAAE,OAAe,EAAE,WAAmB,EAAE,KAAa,EAAE,SAAe;QAC5H,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,OAAwB,EAAE,QAA4C;QAC1G,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAwB,EAAE,QAA4D;QAC5H,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,WAAgB;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,WAAgB;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAS;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,WAAgB,EAAE,IAAS;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAzDD,kCAyDC"}
@@ -1,29 +1,37 @@
1
- import { ContractPayload } from './../types/hive-stream';
2
- import { AdapterBase } from './base.adapter';
3
- export declare class MongodbAdapter extends AdapterBase {
4
- private client;
5
- private db;
6
- private mongo;
7
- private blockNumber;
8
- private lastBlockNumber;
9
- private blockId;
10
- private prevBlockId;
11
- private transactionId;
12
- constructor(uri: string, database: string, options?: {
13
- useNewUrlParser: boolean;
14
- useUnifiedTopology: boolean;
15
- });
16
- protected create(): Promise<boolean>;
17
- protected loadState(): Promise<any>;
18
- protected saveState(data: any): Promise<boolean>;
19
- protected processOperation(op: any, blockNumber: number, blockId: string, prevBlockId: string, trxId: string, blockTime: Date): Promise<void>;
20
- protected processTransfer(operation: any, payload: ContractPayload, metadata: {
21
- sender: string;
22
- amount: string;
23
- }): Promise<boolean>;
24
- protected processCustomJson(operation: any, payload: ContractPayload, metadata: {
25
- sender: string;
26
- isSignedWithActiveKey: boolean;
27
- }): Promise<boolean>;
28
- protected destroy(): Promise<boolean>;
29
- }
1
+ import { TimeAction } from './../actions';
2
+ import { ContractPayload } from './../types/hive-stream';
3
+ import { AdapterBase } from './base.adapter';
4
+ import { Db } from 'mongodb';
5
+ export declare class MongodbAdapter extends AdapterBase {
6
+ private client;
7
+ private db;
8
+ private mongo;
9
+ private blockNumber;
10
+ private lastBlockNumber;
11
+ private blockId;
12
+ private prevBlockId;
13
+ private transactionId;
14
+ constructor(uri: string, database: string, options?: {
15
+ useNewUrlParser: boolean;
16
+ useUnifiedTopology: boolean;
17
+ });
18
+ getDbInstance(): Promise<Db>;
19
+ create(): Promise<boolean>;
20
+ loadActions(): Promise<TimeAction[]>;
21
+ loadState(): Promise<any>;
22
+ saveState(data: any): Promise<boolean>;
23
+ processOperation(op: any, blockNumber: number, blockId: string, prevBlockId: string, trxId: string, blockTime: Date): Promise<void>;
24
+ processTransfer(operation: any, payload: ContractPayload, metadata: {
25
+ sender: string;
26
+ amount: string;
27
+ }): Promise<boolean>;
28
+ processCustomJson(operation: any, payload: ContractPayload, metadata: {
29
+ sender: string;
30
+ isSignedWithActiveKey: boolean;
31
+ }): Promise<boolean>;
32
+ destroy(): Promise<boolean>;
33
+ find(table: string, queryObject: any): Promise<any>;
34
+ findOne(table: string, queryObject: any): Promise<any>;
35
+ insert(table: string, data: any): Promise<import("mongodb").InsertOneResult<import("bson").Document>>;
36
+ replace(table: string, queryObject: any, data: any): Promise<import("bson").Document | import("mongodb").UpdateResult>;
37
+ }
@@ -1,114 +1,159 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const base_adapter_1 = require("./base.adapter");
13
- const mongodb_1 = require("mongodb");
14
- class MongodbAdapter extends base_adapter_1.AdapterBase {
15
- constructor(uri, database, options = { useNewUrlParser: true, useUnifiedTopology: true }) {
16
- super();
17
- this.mongo = {
18
- uri: '',
19
- database: '',
20
- options: {}
21
- };
22
- this.mongo.uri = uri;
23
- this.mongo.database = database;
24
- this.mongo.options = options;
25
- }
26
- create() {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- try {
29
- this.client = yield mongodb_1.MongoClient.connect(this.mongo.uri, this.mongo.options);
30
- this.db = this.client.db(this.mongo.database);
31
- return true;
32
- }
33
- catch (e) {
34
- throw e;
35
- }
36
- });
37
- }
38
- loadState() {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- try {
41
- const collection = this.db.collection('params');
42
- const params = yield collection.findOne({});
43
- if (params) {
44
- return params;
45
- }
46
- }
47
- catch (e) {
48
- throw e;
49
- }
50
- });
51
- }
52
- saveState(data) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- try {
55
- const collection = this.db.collection('params');
56
- yield collection.replaceOne({}, data, { upsert: true });
57
- return true;
58
- }
59
- catch (e) {
60
- throw e;
61
- }
62
- });
63
- }
64
- processOperation(op, blockNumber, blockId, prevBlockId, trxId, blockTime) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- this.blockNumber = blockNumber;
67
- this.blockId = blockId;
68
- this.prevBlockId = prevBlockId;
69
- this.transactionId = trxId;
70
- });
71
- }
72
- processTransfer(operation, payload, metadata) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- const collection = this.db.collection('transfers');
75
- const data = {
76
- id: this.transactionId,
77
- blockId: this.blockId,
78
- blockNumber: this.blockNumber,
79
- sender: metadata.sender,
80
- amount: metadata.amount,
81
- contractName: payload.name,
82
- contractAction: payload.action,
83
- ContractPayload: payload.payload
84
- };
85
- yield collection.insertOne(data);
86
- return true;
87
- });
88
- }
89
- processCustomJson(operation, payload, metadata) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- const collection = this.db.collection('transactions');
92
- const data = {
93
- id: this.transactionId,
94
- blockId: this.blockId,
95
- blockNumber: this.blockNumber,
96
- sender: metadata.sender,
97
- isSignedWithActiveKey: metadata.isSignedWithActiveKey,
98
- contractName: payload.name,
99
- contractAction: payload.action,
100
- ContractPayload: payload.payload
101
- };
102
- yield collection.insertOne(data);
103
- return true;
104
- });
105
- }
106
- destroy() {
107
- return __awaiter(this, void 0, void 0, function* () {
108
- yield this.client.close();
109
- return true;
110
- });
111
- }
112
- }
113
- exports.MongodbAdapter = MongodbAdapter;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MongodbAdapter = void 0;
4
+ const base_adapter_1 = require("./base.adapter");
5
+ const mongodb_1 = require("mongodb");
6
+ class MongodbAdapter extends base_adapter_1.AdapterBase {
7
+ client;
8
+ db;
9
+ mongo = {
10
+ uri: '',
11
+ database: '',
12
+ options: {}
13
+ };
14
+ blockNumber;
15
+ lastBlockNumber;
16
+ blockId;
17
+ prevBlockId;
18
+ transactionId;
19
+ constructor(uri, database, options = { useNewUrlParser: true, useUnifiedTopology: true }) {
20
+ super();
21
+ this.mongo.uri = uri;
22
+ this.mongo.database = database;
23
+ this.mongo.options = options;
24
+ }
25
+ async getDbInstance() {
26
+ try {
27
+ this.client = await mongodb_1.MongoClient.connect(this.mongo.uri, this.mongo.options);
28
+ this.db = this.client.db(this.mongo.database);
29
+ return this.db;
30
+ }
31
+ catch (e) {
32
+ throw e;
33
+ }
34
+ }
35
+ async create() {
36
+ try {
37
+ this.client = await mongodb_1.MongoClient.connect(this.mongo.uri, this.mongo.options);
38
+ this.db = this.client.db(this.mongo.database);
39
+ return true;
40
+ }
41
+ catch (e) {
42
+ throw e;
43
+ }
44
+ }
45
+ async loadActions() {
46
+ if (!this.db) {
47
+ await this.getDbInstance();
48
+ }
49
+ const state = await this.loadState();
50
+ if (state) {
51
+ return (state?.actions) ? state.actions : [];
52
+ }
53
+ return [];
54
+ }
55
+ async loadState() {
56
+ try {
57
+ if (!this.db) {
58
+ await this.getDbInstance();
59
+ }
60
+ const collection = this.db.collection('params');
61
+ const params = await collection.findOne({});
62
+ if (params) {
63
+ return params;
64
+ }
65
+ }
66
+ catch (e) {
67
+ throw e;
68
+ }
69
+ }
70
+ async saveState(data) {
71
+ try {
72
+ if (!this.db) {
73
+ await this.getDbInstance();
74
+ }
75
+ const collection = this.db.collection('params');
76
+ await collection.replaceOne({}, data, { upsert: true });
77
+ return true;
78
+ }
79
+ catch (e) {
80
+ throw e;
81
+ }
82
+ }
83
+ async processOperation(op, blockNumber, blockId, prevBlockId, trxId, blockTime) {
84
+ this.blockNumber = blockNumber;
85
+ this.blockId = blockId;
86
+ this.prevBlockId = prevBlockId;
87
+ this.transactionId = trxId;
88
+ }
89
+ async processTransfer(operation, payload, metadata) {
90
+ if (!this.db) {
91
+ await this.getDbInstance();
92
+ }
93
+ const collection = this.db.collection('transfers');
94
+ const data = {
95
+ id: this.transactionId,
96
+ blockId: this.blockId,
97
+ blockNumber: this.blockNumber,
98
+ sender: metadata.sender,
99
+ amount: metadata.amount,
100
+ contractName: payload.name,
101
+ contractAction: payload.action,
102
+ ContractPayload: payload.payload
103
+ };
104
+ await collection.insertOne(data);
105
+ return true;
106
+ }
107
+ async processCustomJson(operation, payload, metadata) {
108
+ if (!this.db) {
109
+ await this.getDbInstance();
110
+ }
111
+ const collection = this.db.collection('customJson');
112
+ const data = {
113
+ id: this.transactionId,
114
+ blockId: this.blockId,
115
+ blockNumber: this.blockNumber,
116
+ sender: metadata.sender,
117
+ isSignedWithActiveKey: metadata.isSignedWithActiveKey,
118
+ contractName: payload.name,
119
+ contractAction: payload.action,
120
+ ContractPayload: payload.payload
121
+ };
122
+ await collection.insertOne(data);
123
+ return true;
124
+ }
125
+ async destroy() {
126
+ await this.client.close();
127
+ return true;
128
+ }
129
+ async find(table, queryObject) {
130
+ if (!this.db) {
131
+ await this.getDbInstance();
132
+ }
133
+ const collection = this.db.collection(table);
134
+ return await collection.find(queryObject).toArray();
135
+ }
136
+ async findOne(table, queryObject) {
137
+ if (!this.db) {
138
+ await this.getDbInstance();
139
+ }
140
+ const collection = this.db.collection(table);
141
+ return await collection.find(queryObject).limit(1).toArray();
142
+ }
143
+ async insert(table, data) {
144
+ if (!this.db) {
145
+ await this.getDbInstance();
146
+ }
147
+ const collection = this.db.collection(table);
148
+ return await collection.insertOne(data);
149
+ }
150
+ async replace(table, queryObject, data) {
151
+ if (!this.db) {
152
+ await this.getDbInstance();
153
+ }
154
+ const collection = this.db.collection(table);
155
+ return await collection.replaceOne(queryObject, data, { upsert: true });
156
+ }
157
+ }
158
+ exports.MongodbAdapter = MongodbAdapter;
114
159
  //# sourceMappingURL=mongodb.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb.adapter.js","sourceRoot":"","sources":["../../src/adapters/mongodb.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb.adapter.js","sourceRoot":"","sources":["../../src/adapters/mongodb.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,41 @@
1
- import { ContractPayload } from './../types/hive-stream';
2
- import { AdapterBase } from './base.adapter';
3
- export declare class SqliteAdapter extends AdapterBase {
4
- private db;
5
- private blockNumber;
6
- private lastBlockNumber;
7
- private blockId;
8
- private prevBlockId;
9
- private transactionId;
10
- protected create(): Promise<boolean>;
11
- protected loadState(): Promise<any>;
12
- protected saveState(data: any): Promise<boolean>;
13
- protected processOperation(op: any, blockNumber: number, blockId: string, prevBlockId: string, trxId: string, blockTime: Date): Promise<void>;
14
- protected processTransfer(operation: any, payload: ContractPayload, metadata: {
15
- sender: string;
16
- amount: string;
17
- }): Promise<boolean>;
18
- protected processCustomJson(operation: any, payload: ContractPayload, metadata: {
19
- sender: string;
20
- isSignedWithActiveKey: boolean;
21
- }): Promise<boolean>;
22
- protected destroy(): Promise<boolean>;
23
- }
1
+ import { TimeAction } from './../actions';
2
+ import { ContractPayload } from './../types/hive-stream';
3
+ import { AdapterBase } from './base.adapter';
4
+ import { Database } from 'sqlite3';
5
+ export declare class SqliteAdapter extends AdapterBase {
6
+ db: Database;
7
+ private blockNumber;
8
+ private lastBlockNumber;
9
+ private blockId;
10
+ private prevBlockId;
11
+ private transactionId;
12
+ getDb(): Database;
13
+ create(): Promise<boolean>;
14
+ loadActions(): Promise<TimeAction[]>;
15
+ loadState(): Promise<any>;
16
+ saveState(data: any): Promise<boolean>;
17
+ processOperation(op: any, blockNumber: number, blockId: string, prevBlockId: string, trxId: string, blockTime: Date): Promise<void>;
18
+ processTransfer(operation: any, payload: ContractPayload, metadata: {
19
+ sender: string;
20
+ amount: string;
21
+ }): Promise<boolean>;
22
+ processCustomJson(operation: any, payload: ContractPayload, metadata: {
23
+ sender: string;
24
+ isSignedWithActiveKey: boolean;
25
+ }): Promise<boolean>;
26
+ addEvent(date: string, contract: string, action: string, payload: ContractPayload, data: unknown): Promise<boolean>;
27
+ getTransfers(): Promise<unknown>;
28
+ getEvents(): Promise<unknown>;
29
+ getTransfersByContract(contract: string): Promise<unknown>;
30
+ getTransfersByAccount(account: string): Promise<unknown>;
31
+ getTransfersByBlockid(blockId: any): Promise<unknown>;
32
+ getJson(): Promise<unknown>;
33
+ getJsonByContract(contract: string): Promise<unknown>;
34
+ getJsonByAccount(account: string): Promise<unknown>;
35
+ getJsonByBlockid(blockId: any): Promise<unknown>;
36
+ destroy(): Promise<boolean>;
37
+ find(table: any, query: any): Promise<unknown>;
38
+ findOne(table: any, query: any): Promise<unknown>;
39
+ insert(table: any, data: any): Promise<unknown>;
40
+ replace(table: string, queryObject: any, data: any): Promise<any>;
41
+ }