@mainsail/transactions 0.0.1-alpha.10 → 0.0.1-alpha.12
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/distribution/handlers/handler-provider.d.ts.map +1 -1
- package/distribution/handlers/handler-provider.js +29 -27
- package/distribution/handlers/handler-provider.js.map +1 -1
- package/distribution/handlers/handler-registry.d.ts +1 -1
- package/distribution/handlers/handler-registry.d.ts.map +1 -1
- package/distribution/handlers/handler-registry.js +18 -21
- package/distribution/handlers/handler-registry.js.map +1 -1
- package/distribution/handlers/index.d.ts +3 -3
- package/distribution/handlers/index.d.ts.map +1 -1
- package/distribution/handlers/index.js +3 -9
- package/distribution/handlers/index.js.map +1 -1
- package/distribution/handlers/transaction.js +27 -30
- package/distribution/handlers/transaction.js.map +1 -1
- package/distribution/index.d.ts +3 -3
- package/distribution/index.d.ts.map +1 -1
- package/distribution/index.js +4 -33
- package/distribution/index.js.map +1 -1
- package/distribution/service-provider.d.ts +1 -1
- package/distribution/service-provider.d.ts.map +1 -1
- package/distribution/service-provider.js +9 -13
- package/distribution/service-provider.js.map +1 -1
- package/distribution/utils.js +1 -5
- package/distribution/utils.js.map +1 -1
- package/package.json +7 -6
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handler-provider.d.ts","sourceRoot":"","sources":["../../source/handlers/handler-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAMzE,qBACa,0BAA2B,YAAW,SAAS,CAAC,YAAY,CAAC,0BAA0B;;IAEnG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuC;IAG3E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmC;IAGvE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;
|
1
|
+
{"version":3,"file":"handler-provider.d.ts","sourceRoot":"","sources":["../../source/handlers/handler-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAMzE,qBACa,0BAA2B,YAAW,SAAS,CAAC,YAAY,CAAC,0BAA0B;;IAEnG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuC;IAG3E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmC;IAGvE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAKrE,sBAAsB,IAAI,OAAO;IAIjC,gBAAgB,IAAI,IAAI;CAkF/B"}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
"use strict";
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
@@ -19,17 +18,16 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
19
18
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
20
19
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
21
20
|
};
|
22
|
-
var _TransactionHandlerProvider_instances, _TransactionHandlerProvider_registered, _TransactionHandlerProvider_registerHandler, _TransactionHandlerProvider_hasOtherHandlerHandling, _TransactionHandlerProvider_hasOtherHandler;
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
const crypto_transaction_1 = require("@mainsail/crypto-transaction");
|
28
|
-
const kernel_1 = require("@mainsail/kernel");
|
21
|
+
var _TransactionHandlerProvider_instances, _TransactionHandlerProvider_registered, _TransactionHandlerProvider_handlerDependencyLookup, _TransactionHandlerProvider_registerHandler, _TransactionHandlerProvider_hasOtherHandlerHandling, _TransactionHandlerProvider_hasOtherHandler;
|
22
|
+
import { inject, injectable } from "@mainsail/container";
|
23
|
+
import { Contracts, Exceptions, Identifiers } from "@mainsail/contracts";
|
24
|
+
import { InternalTransactionType } from "@mainsail/crypto-transaction";
|
25
|
+
import { Utils } from "@mainsail/kernel";
|
29
26
|
let TransactionHandlerProvider = class TransactionHandlerProvider {
|
30
27
|
constructor() {
|
31
28
|
_TransactionHandlerProvider_instances.add(this);
|
32
29
|
_TransactionHandlerProvider_registered.set(this, false);
|
30
|
+
_TransactionHandlerProvider_handlerDependencyLookup.set(this, new Set());
|
33
31
|
}
|
34
32
|
isRegistrationRequired() {
|
35
33
|
return __classPrivateFieldGet(this, _TransactionHandlerProvider_registered, "f") === false;
|
@@ -41,21 +39,22 @@ let TransactionHandlerProvider = class TransactionHandlerProvider {
|
|
41
39
|
__classPrivateFieldSet(this, _TransactionHandlerProvider_registered, true, "f");
|
42
40
|
}
|
43
41
|
};
|
44
|
-
exports.TransactionHandlerProvider = TransactionHandlerProvider;
|
45
42
|
_TransactionHandlerProvider_registered = new WeakMap();
|
43
|
+
_TransactionHandlerProvider_handlerDependencyLookup = new WeakMap();
|
46
44
|
_TransactionHandlerProvider_instances = new WeakSet();
|
47
45
|
_TransactionHandlerProvider_registerHandler = function _TransactionHandlerProvider_registerHandler(handlerConstructor) {
|
48
46
|
const handler = new handlerConstructor();
|
49
47
|
const transactionConstructor = handler.getConstructor();
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
__classPrivateFieldGet(this, _TransactionHandlerProvider_handlerDependencyLookup, "f").add(transactionConstructor);
|
49
|
+
Utils.assert.defined(transactionConstructor.type);
|
50
|
+
Utils.assert.defined(transactionConstructor.typeGroup);
|
51
|
+
const internalType = InternalTransactionType.from(transactionConstructor.type, transactionConstructor.typeGroup);
|
53
52
|
if (__classPrivateFieldGet(this, _TransactionHandlerProvider_instances, "m", _TransactionHandlerProvider_hasOtherHandlerHandling).call(this, handlerConstructor, internalType, transactionConstructor.version)) {
|
54
|
-
throw new
|
53
|
+
throw new Exceptions.AlreadyRegisteredError(internalType);
|
55
54
|
}
|
56
55
|
for (const dependency of handler.dependencies()) {
|
57
|
-
if (__classPrivateFieldGet(this, _TransactionHandlerProvider_instances, "m", _TransactionHandlerProvider_hasOtherHandler).call(this,
|
58
|
-
throw new
|
56
|
+
if (__classPrivateFieldGet(this, _TransactionHandlerProvider_instances, "m", _TransactionHandlerProvider_hasOtherHandler).call(this, dependency) === false) {
|
57
|
+
throw new Exceptions.UnsatisfiedDependencyError(internalType);
|
59
58
|
}
|
60
59
|
}
|
61
60
|
for (const attribute of handler.walletAttributes()) {
|
@@ -63,7 +62,7 @@ _TransactionHandlerProvider_registerHandler = function _TransactionHandlerProvid
|
|
63
62
|
this.attributeRepository.set(attribute.name, attribute.type);
|
64
63
|
}
|
65
64
|
}
|
66
|
-
if (transactionConstructor.typeGroup !==
|
65
|
+
if (transactionConstructor.typeGroup !== Contracts.Crypto.TransactionTypeGroup.Core) {
|
67
66
|
this.transactionRegistry.registerTransactionType(transactionConstructor);
|
68
67
|
}
|
69
68
|
};
|
@@ -74,32 +73,35 @@ _TransactionHandlerProvider_hasOtherHandlerHandling = function _TransactionHandl
|
|
74
73
|
}
|
75
74
|
const otherHandler = new otherHandlerConstructor();
|
76
75
|
const otherTransactionConstructor = otherHandler.getConstructor();
|
77
|
-
|
78
|
-
|
79
|
-
const otherInternalType =
|
76
|
+
Utils.assert.defined(otherTransactionConstructor.type);
|
77
|
+
Utils.assert.defined(otherTransactionConstructor.typeGroup);
|
78
|
+
const otherInternalType = InternalTransactionType.from(otherTransactionConstructor.type, otherTransactionConstructor.typeGroup);
|
80
79
|
if (otherInternalType === internalType && otherTransactionConstructor.version === version) {
|
81
80
|
return true;
|
82
81
|
}
|
83
82
|
}
|
84
83
|
return false;
|
85
84
|
};
|
86
|
-
_TransactionHandlerProvider_hasOtherHandler = function _TransactionHandlerProvider_hasOtherHandler(
|
87
|
-
|
88
|
-
|
85
|
+
_TransactionHandlerProvider_hasOtherHandler = function _TransactionHandlerProvider_hasOtherHandler(dependencyConstructor) {
|
86
|
+
const dependency = new dependencyConstructor().getConstructor();
|
87
|
+
return [...__classPrivateFieldGet(this, _TransactionHandlerProvider_handlerDependencyLookup, "f")].some((handler) => handler.type === dependency.type &&
|
88
|
+
handler.typeGroup === dependency.typeGroup &&
|
89
|
+
handler.version === dependency.version);
|
89
90
|
};
|
90
91
|
__decorate([
|
91
|
-
|
92
|
+
inject(Identifiers.State.Wallet.Attributes),
|
92
93
|
__metadata("design:type", Object)
|
93
94
|
], TransactionHandlerProvider.prototype, "attributeRepository", void 0);
|
94
95
|
__decorate([
|
95
|
-
|
96
|
+
inject(Identifiers.Transaction.Handler.Constructors),
|
96
97
|
__metadata("design:type", Array)
|
97
98
|
], TransactionHandlerProvider.prototype, "handlerConstructors", void 0);
|
98
99
|
__decorate([
|
99
|
-
|
100
|
+
inject(Identifiers.Cryptography.Transaction.Registry),
|
100
101
|
__metadata("design:type", Object)
|
101
102
|
], TransactionHandlerProvider.prototype, "transactionRegistry", void 0);
|
102
|
-
|
103
|
-
|
103
|
+
TransactionHandlerProvider = __decorate([
|
104
|
+
injectable()
|
104
105
|
], TransactionHandlerProvider);
|
106
|
+
export { TransactionHandlerProvider };
|
105
107
|
//# sourceMappingURL=handler-provider.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handler-provider.js","sourceRoot":"","sources":["../../source/handlers/handler-provider.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"handler-provider.js","sourceRoot":"","sources":["../../source/handlers/handler-provider.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Contracts } from "@mainsail/contracts";
|
2
|
-
import { TransactionHandler } from "./transaction";
|
2
|
+
import { TransactionHandler } from "./transaction.js";
|
3
3
|
export declare class TransactionHandlerRegistry implements Contracts.Transactions.TransactionHandlerRegistry {
|
4
4
|
private readonly provider;
|
5
5
|
private readonly handlers;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handler-registry.d.ts","sourceRoot":"","sources":["../../source/handlers/handler-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAKzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"handler-registry.d.ts","sourceRoot":"","sources":["../../source/handlers/handler-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAKzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBACa,0BAA2B,YAAW,SAAS,CAAC,YAAY,CAAC,0BAA0B;IAEnG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAGvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IAG1C,UAAU,IAAI,IAAI;IAMlB,qBAAqB,IAAI,kBAAkB,EAAE;IAI7C,0BAA0B,CAChC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,uBAAuB,EAC5D,OAAO,SAAI,GACT,kBAAkB;IAiBR,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IASrD,yBAAyB,CACrC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,uBAAuB,EAC5D,OAAO,SAAI,GACT,OAAO,CAAC,kBAAkB,CAAC;IAQjB,0BAA0B,CACtC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,GAC/C,OAAO,CAAC,kBAAkB,CAAC;CAI9B"}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
"use strict";
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
@@ -8,13 +7,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
9
|
};
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
const kernel_1 = require("@mainsail/kernel");
|
17
|
-
const handler_provider_1 = require("./handler-provider");
|
10
|
+
import { inject, injectable, multiInject, postConstruct } from "@mainsail/container";
|
11
|
+
import { Exceptions, Identifiers } from "@mainsail/contracts";
|
12
|
+
import { InternalTransactionType } from "@mainsail/crypto-transaction";
|
13
|
+
import { Utils } from "@mainsail/kernel";
|
14
|
+
import { TransactionHandlerProvider } from "./handler-provider.js";
|
18
15
|
let TransactionHandlerRegistry = class TransactionHandlerRegistry {
|
19
16
|
initialize() {
|
20
17
|
if (this.provider.isRegistrationRequired()) {
|
@@ -27,14 +24,14 @@ let TransactionHandlerRegistry = class TransactionHandlerRegistry {
|
|
27
24
|
getRegisteredHandlerByType(internalType, version = 1) {
|
28
25
|
for (const handler of this.handlers) {
|
29
26
|
const transactionConstructor = handler.getConstructor();
|
30
|
-
|
31
|
-
|
32
|
-
const handlerInternalType =
|
27
|
+
Utils.assert.defined(transactionConstructor.type);
|
28
|
+
Utils.assert.defined(transactionConstructor.typeGroup);
|
29
|
+
const handlerInternalType = InternalTransactionType.from(transactionConstructor.type, transactionConstructor.typeGroup);
|
33
30
|
if (handlerInternalType === internalType && transactionConstructor.version === version) {
|
34
31
|
return handler;
|
35
32
|
}
|
36
33
|
}
|
37
|
-
throw new
|
34
|
+
throw new Exceptions.InvalidTransactionTypeError(internalType);
|
38
35
|
}
|
39
36
|
async getActivatedHandlers() {
|
40
37
|
const promises = this.handlers.map(async (handler) => [handler, await handler.isActivated()]);
|
@@ -47,29 +44,29 @@ let TransactionHandlerRegistry = class TransactionHandlerRegistry {
|
|
47
44
|
if (await handler.isActivated()) {
|
48
45
|
return handler;
|
49
46
|
}
|
50
|
-
throw new
|
47
|
+
throw new Exceptions.DeactivatedTransactionHandlerError(internalType);
|
51
48
|
}
|
52
49
|
async getActivatedHandlerForData(transactionData) {
|
53
|
-
const internalType =
|
50
|
+
const internalType = InternalTransactionType.from(transactionData.type, transactionData.typeGroup);
|
54
51
|
return this.getActivatedHandlerByType(internalType, transactionData.version);
|
55
52
|
}
|
56
53
|
};
|
57
|
-
exports.TransactionHandlerRegistry = TransactionHandlerRegistry;
|
58
54
|
__decorate([
|
59
|
-
|
60
|
-
__metadata("design:type",
|
55
|
+
inject(Identifiers.Transaction.Handler.Provider),
|
56
|
+
__metadata("design:type", TransactionHandlerProvider)
|
61
57
|
], TransactionHandlerRegistry.prototype, "provider", void 0);
|
62
58
|
__decorate([
|
63
|
-
|
59
|
+
multiInject(Identifiers.Transaction.Handler.Instances),
|
64
60
|
__metadata("design:type", Array)
|
65
61
|
], TransactionHandlerRegistry.prototype, "handlers", void 0);
|
66
62
|
__decorate([
|
67
|
-
|
63
|
+
postConstruct(),
|
68
64
|
__metadata("design:type", Function),
|
69
65
|
__metadata("design:paramtypes", []),
|
70
66
|
__metadata("design:returntype", void 0)
|
71
67
|
], TransactionHandlerRegistry.prototype, "initialize", null);
|
72
|
-
|
73
|
-
|
68
|
+
TransactionHandlerRegistry = __decorate([
|
69
|
+
injectable()
|
74
70
|
], TransactionHandlerRegistry);
|
71
|
+
export { TransactionHandlerRegistry };
|
75
72
|
//# sourceMappingURL=handler-registry.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handler-registry.js","sourceRoot":"","sources":["../../source/handlers/handler-registry.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"handler-registry.js","sourceRoot":"","sources":["../../source/handlers/handler-registry.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export { TransactionHandlerProvider } from "./handler-provider";
|
2
|
-
export { TransactionHandlerRegistry as Registry } from "./handler-registry";
|
3
|
-
export { TransactionHandler, TransactionHandlerConstructor } from "./transaction";
|
1
|
+
export { TransactionHandlerProvider } from "./handler-provider.js";
|
2
|
+
export { TransactionHandlerRegistry as Registry } from "./handler-registry.js";
|
3
|
+
export { TransactionHandler, TransactionHandlerConstructor } from "./transaction.js";
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,0BAA0B,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC"}
|
@@ -1,10 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
var handler_provider_1 = require("./handler-provider");
|
5
|
-
Object.defineProperty(exports, "TransactionHandlerProvider", { enumerable: true, get: function () { return handler_provider_1.TransactionHandlerProvider; } });
|
6
|
-
var handler_registry_1 = require("./handler-registry");
|
7
|
-
Object.defineProperty(exports, "Registry", { enumerable: true, get: function () { return handler_registry_1.TransactionHandlerRegistry; } });
|
8
|
-
var transaction_1 = require("./transaction");
|
9
|
-
Object.defineProperty(exports, "TransactionHandler", { enumerable: true, get: function () { return transaction_1.TransactionHandler; } });
|
1
|
+
export { TransactionHandlerProvider } from "./handler-provider.js";
|
2
|
+
export { TransactionHandlerRegistry as Registry } from "./handler-registry.js";
|
3
|
+
export { TransactionHandler } from "./transaction.js";
|
10
4
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/handlers/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,0BAA0B,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAiC,MAAM,kBAAkB,CAAC"}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
"use strict";
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
@@ -14,19 +13,17 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
14
13
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
15
14
|
};
|
16
15
|
var _TransactionHandler_instances, _TransactionHandler_verifyTransactionNonceApply;
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
const kernel_1 = require("@mainsail/kernel");
|
22
|
-
const utils_1 = require("@mainsail/utils");
|
16
|
+
import { inject, injectable } from "@mainsail/container";
|
17
|
+
import { Contracts, Exceptions, Identifiers } from "@mainsail/contracts";
|
18
|
+
import { Utils as AppUtils } from "@mainsail/kernel";
|
19
|
+
import { BigNumber } from "@mainsail/utils";
|
23
20
|
// @TODO revisit the implementation, container usage and arguments after database rework
|
24
21
|
let TransactionHandler = class TransactionHandler {
|
25
22
|
constructor() {
|
26
23
|
_TransactionHandler_instances.add(this);
|
27
24
|
}
|
28
25
|
async verify(walletRepository, transaction) {
|
29
|
-
|
26
|
+
AppUtils.assert.defined(transaction.data.senderPublicKey);
|
30
27
|
const senderWallet = await walletRepository.findByPublicKey(transaction.data.senderPublicKey);
|
31
28
|
if (senderWallet.hasMultiSignature()) {
|
32
29
|
return this.verifySignatures(senderWallet, transaction.data);
|
@@ -35,38 +32,38 @@ let TransactionHandler = class TransactionHandler {
|
|
35
32
|
}
|
36
33
|
async throwIfCannotBeApplied(walletRepository, transaction, sender) {
|
37
34
|
const senderWallet = walletRepository.findByAddress(sender.getAddress());
|
38
|
-
|
35
|
+
AppUtils.assert.defined(sender.getPublicKey());
|
39
36
|
if (!walletRepository.hasByPublicKey(sender.getPublicKey()) && senderWallet.getBalance().isZero()) {
|
40
|
-
throw new
|
37
|
+
throw new Exceptions.ColdWalletError();
|
41
38
|
}
|
42
39
|
// @TODO: enforce fees here to support dynamic cases
|
43
40
|
__classPrivateFieldGet(this, _TransactionHandler_instances, "m", _TransactionHandler_verifyTransactionNonceApply).call(this, sender, transaction);
|
44
41
|
if (sender.getBalance().minus(transaction.data.amount).minus(transaction.data.fee).isNegative() &&
|
45
42
|
this.configuration.getHeight() > 0) {
|
46
|
-
throw new
|
43
|
+
throw new Exceptions.InsufficientBalanceError();
|
47
44
|
}
|
48
45
|
if (transaction.data.senderPublicKey !== sender.getPublicKey()) {
|
49
|
-
throw new
|
46
|
+
throw new Exceptions.SenderWalletMismatchError();
|
50
47
|
}
|
51
48
|
// Prevent legacy multi signatures from being used
|
52
|
-
const isMultiSignatureRegistration = transaction.type ===
|
53
|
-
transaction.typeGroup ===
|
49
|
+
const isMultiSignatureRegistration = transaction.type === Contracts.Crypto.TransactionType.MultiSignature &&
|
50
|
+
transaction.typeGroup === Contracts.Crypto.TransactionTypeGroup.Core;
|
54
51
|
if (sender.hasMultiSignature()) {
|
55
|
-
|
52
|
+
AppUtils.assert.defined(transaction.data.senderPublicKey);
|
56
53
|
// Ensure the database wallet already has a multi signature, in case we checked a pool wallet.
|
57
54
|
const databaseSender = await walletRepository.findByPublicKey(transaction.data.senderPublicKey);
|
58
55
|
if (!databaseSender.hasMultiSignature()) {
|
59
|
-
throw new
|
56
|
+
throw new Exceptions.MissingMultiSignatureOnSenderError();
|
60
57
|
}
|
61
58
|
if (databaseSender.hasAttribute("multiSignature.legacy")) {
|
62
|
-
throw new
|
59
|
+
throw new Exceptions.LegacyMultiSignatureError();
|
63
60
|
}
|
64
61
|
if (!this.verifySignatures(databaseSender, transaction.data, databaseSender.getAttribute("multiSignature"))) {
|
65
|
-
throw new
|
62
|
+
throw new Exceptions.InvalidMultiSignaturesError();
|
66
63
|
}
|
67
64
|
}
|
68
65
|
else if (transaction.data.signatures && !isMultiSignatureRegistration) {
|
69
|
-
throw new
|
66
|
+
throw new Exceptions.UnsupportedMultiSignatureRegistrationTransactionError();
|
70
67
|
}
|
71
68
|
}
|
72
69
|
async apply(walletRepository, transaction) {
|
@@ -74,12 +71,12 @@ let TransactionHandler = class TransactionHandler {
|
|
74
71
|
await this.applyToRecipient(walletRepository, transaction);
|
75
72
|
}
|
76
73
|
async applyToSender(walletRepository, transaction) {
|
77
|
-
|
74
|
+
AppUtils.assert.defined(transaction.data.senderPublicKey);
|
78
75
|
const sender = await walletRepository.findByPublicKey(transaction.data.senderPublicKey);
|
79
76
|
const data = transaction.data;
|
80
77
|
await this.throwIfCannotBeApplied(walletRepository, transaction, sender);
|
81
78
|
__classPrivateFieldGet(this, _TransactionHandler_instances, "m", _TransactionHandler_verifyTransactionNonceApply).call(this, sender, transaction);
|
82
|
-
|
79
|
+
AppUtils.assert.defined(data.nonce);
|
83
80
|
sender.setNonce(data.nonce);
|
84
81
|
// Subtract fee
|
85
82
|
const newBalance = sender.getBalance().minus(data.fee);
|
@@ -99,31 +96,31 @@ let TransactionHandler = class TransactionHandler {
|
|
99
96
|
.map(({ data }) => data);
|
100
97
|
}
|
101
98
|
};
|
102
|
-
exports.TransactionHandler = TransactionHandler;
|
103
99
|
_TransactionHandler_instances = new WeakSet();
|
104
100
|
_TransactionHandler_verifyTransactionNonceApply = function _TransactionHandler_verifyTransactionNonceApply(wallet, transaction) {
|
105
|
-
const nonce = transaction.data.nonce ||
|
101
|
+
const nonce = transaction.data.nonce || BigNumber.ZERO;
|
106
102
|
if (!wallet.getNonce().plus(1).isEqualTo(nonce)) {
|
107
|
-
throw new
|
103
|
+
throw new Exceptions.UnexpectedNonceError(nonce, wallet, false);
|
108
104
|
}
|
109
105
|
};
|
110
106
|
__decorate([
|
111
|
-
|
107
|
+
inject(Identifiers.Application.Instance),
|
112
108
|
__metadata("design:type", Object)
|
113
109
|
], TransactionHandler.prototype, "app", void 0);
|
114
110
|
__decorate([
|
115
|
-
|
111
|
+
inject(Identifiers.Services.Log.Service),
|
116
112
|
__metadata("design:type", Object)
|
117
113
|
], TransactionHandler.prototype, "logger", void 0);
|
118
114
|
__decorate([
|
119
|
-
|
115
|
+
inject(Identifiers.Cryptography.Configuration),
|
120
116
|
__metadata("design:type", Object)
|
121
117
|
], TransactionHandler.prototype, "configuration", void 0);
|
122
118
|
__decorate([
|
123
|
-
|
119
|
+
inject(Identifiers.Cryptography.Transaction.Verifier),
|
124
120
|
__metadata("design:type", Object)
|
125
121
|
], TransactionHandler.prototype, "verifier", void 0);
|
126
|
-
|
127
|
-
|
122
|
+
TransactionHandler = __decorate([
|
123
|
+
injectable()
|
128
124
|
], TransactionHandler);
|
125
|
+
export { TransactionHandler };
|
129
126
|
//# sourceMappingURL=transaction.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"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"}
|
package/distribution/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
export * as Handlers from "./handlers";
|
2
|
-
export * from "./service-provider";
|
3
|
-
export * as Utils from "./utils";
|
1
|
+
export * as Handlers from "./handlers/index.js";
|
2
|
+
export * from "./service-provider.js";
|
3
|
+
export * as Utils from "./utils.js";
|
4
4
|
export * as Errors from "@mainsail/contracts";
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC"}
|
package/distribution/index.js
CHANGED
@@ -1,34 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
-
}
|
8
|
-
Object.defineProperty(o, k2, desc);
|
9
|
-
}) : (function(o, m, k, k2) {
|
10
|
-
if (k2 === undefined) k2 = k;
|
11
|
-
o[k2] = m[k];
|
12
|
-
}));
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
-
}) : function(o, v) {
|
16
|
-
o["default"] = v;
|
17
|
-
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
-
if (mod && mod.__esModule) return mod;
|
20
|
-
var result = {};
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
-
__setModuleDefault(result, mod);
|
23
|
-
return result;
|
24
|
-
};
|
25
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
26
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
27
|
-
};
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
29
|
-
exports.Errors = exports.Utils = exports.Handlers = void 0;
|
30
|
-
exports.Handlers = __importStar(require("./handlers"));
|
31
|
-
__exportStar(require("./service-provider"), exports);
|
32
|
-
exports.Utils = __importStar(require("./utils"));
|
33
|
-
exports.Errors = __importStar(require("@mainsail/contracts"));
|
1
|
+
export * as Handlers from "./handlers/index.js";
|
2
|
+
export * from "./service-provider.js";
|
3
|
+
export * as Utils from "./utils.js";
|
4
|
+
export * as Errors from "@mainsail/contracts";
|
34
5
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { interfaces } from "@mainsail/container";
|
2
2
|
import { Providers } from "@mainsail/kernel";
|
3
|
-
import { TransactionHandlerConstructor } from "./handlers";
|
3
|
+
import { TransactionHandlerConstructor } from "./handlers/index.js";
|
4
4
|
export declare class ServiceProvider extends Providers.ServiceProvider {
|
5
5
|
static getTransactionHandlerConstructorsBinding(): (context: interfaces.Context) => TransactionHandlerConstructor[];
|
6
6
|
register(): Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"service-provider.d.ts","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"service-provider.d.ts","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAE,6BAA6B,EAA8B,MAAM,qBAAqB,CAAC;AAEhG,qBAAa,eAAgB,SAAQ,SAAS,CAAC,eAAe;WAC/C,wCAAwC,IAAI,CACzD,OAAO,EAAE,UAAU,CAAC,OAAO,KACvB,6BAA6B,EAAE;IAuBvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAUzB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;CAGzC"}
|
@@ -1,18 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
const handlers_1 = require("./handlers");
|
7
|
-
const handler_registry_1 = require("./handlers/handler-registry");
|
8
|
-
class ServiceProvider extends kernel_1.Providers.ServiceProvider {
|
1
|
+
import { Identifiers } from "@mainsail/contracts";
|
2
|
+
import { Providers } from "@mainsail/kernel";
|
3
|
+
import { TransactionHandlerRegistry } from "./handlers/handler-registry.js";
|
4
|
+
import { TransactionHandlerProvider } from "./handlers/index.js";
|
5
|
+
export class ServiceProvider extends Providers.ServiceProvider {
|
9
6
|
static getTransactionHandlerConstructorsBinding() {
|
10
7
|
return (context) => {
|
11
8
|
const handlerConstructors = [];
|
12
9
|
let container = context.container;
|
13
10
|
do {
|
14
11
|
const bindingDictionary = container["_bindingDictionary"];
|
15
|
-
const handlerBindings = bindingDictionary.getMap().get(
|
12
|
+
const handlerBindings = bindingDictionary.getMap().get(Identifiers.Transaction.Handler.Instances) ?? [];
|
16
13
|
for (const handlerBinding of handlerBindings) {
|
17
14
|
if (handlerBinding.implementationType) {
|
18
15
|
handlerConstructors.push(handlerBinding.implementationType);
|
@@ -24,15 +21,14 @@ class ServiceProvider extends kernel_1.Providers.ServiceProvider {
|
|
24
21
|
};
|
25
22
|
}
|
26
23
|
async register() {
|
27
|
-
this.app.bind(
|
24
|
+
this.app.bind(Identifiers.Transaction.Handler.Provider).to(TransactionHandlerProvider).inSingletonScope();
|
28
25
|
this.app
|
29
|
-
.bind(
|
26
|
+
.bind(Identifiers.Transaction.Handler.Constructors)
|
30
27
|
.toDynamicValue(ServiceProvider.getTransactionHandlerConstructorsBinding());
|
31
|
-
this.app.bind(
|
28
|
+
this.app.bind(Identifiers.Transaction.Handler.Registry).to(TransactionHandlerRegistry);
|
32
29
|
}
|
33
30
|
async required() {
|
34
31
|
return true;
|
35
32
|
}
|
36
33
|
}
|
37
|
-
exports.ServiceProvider = ServiceProvider;
|
38
34
|
//# sourceMappingURL=service-provider.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"service-provider.js","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"service-provider.js","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAiC,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEhG,MAAM,OAAO,eAAgB,SAAQ,SAAS,CAAC,eAAe;IACtD,MAAM,CAAC,wCAAwC;QAGrD,OAAO,CAAC,OAA2B,EAAE,EAAE;YAEtC,MAAM,mBAAmB,GAAoC,EAAE,CAAC;YAChE,IAAI,SAAS,GAAgC,OAAO,CAAC,SAAS,CAAC;YAE/D,GAAG,CAAC;gBACH,MAAM,iBAAiB,GAAG,SAAS,CAAC,oBAAoB,CAAsB,CAAC;gBAC/E,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBAExG,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;oBAC9C,IAAI,cAAc,CAAC,kBAAkB,EAAE,CAAC;wBACvC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAmD,CAAC,CAAC;oBAC9F,CAAC;gBACF,CAAC;gBAED,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;YAC9B,CAAC,QAAQ,SAAS,EAAE;YAEpB,OAAO,mBAAmB,CAAC;QAC5B,CAAC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAE1G,IAAI,CAAC,GAAG;aACN,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;aAClD,cAAc,CAAC,eAAe,CAAC,wCAAwC,EAAE,CAAC,CAAC;QAE7E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,QAAQ;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
package/distribution/utils.js
CHANGED
@@ -1,6 +1,2 @@
|
|
1
|
-
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isRecipientOnActiveNetwork = void 0;
|
4
|
-
const isRecipientOnActiveNetwork = (recipientId, base58, configuration) => base58.decodeCheck(recipientId).readUInt8(0) === configuration.get("network.pubKeyHash");
|
5
|
-
exports.isRecipientOnActiveNetwork = isRecipientOnActiveNetwork;
|
1
|
+
export const isRecipientOnActiveNetwork = (recipientId, base58, configuration) => base58.decodeCheck(recipientId).readUInt8(0) === configuration.get("network.pubKeyHash");
|
6
2
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../source/utils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../source/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,WAAmB,EACnB,MAAM,EACN,aAA6C,EACnC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC"}
|
package/package.json
CHANGED
@@ -1,20 +1,21 @@
|
|
1
1
|
{
|
2
2
|
"name": "@mainsail/transactions",
|
3
|
-
"version": "0.0.1-alpha.
|
3
|
+
"version": "0.0.1-alpha.12",
|
4
4
|
"description": "Transaction Services for Mainsail blockchain",
|
5
5
|
"license": "GPL-3.0-only",
|
6
6
|
"contributors": [],
|
7
|
+
"type": "module",
|
7
8
|
"main": "distribution/index.js",
|
8
9
|
"types": "distribution/index.d.ts",
|
9
10
|
"files": [
|
10
11
|
"/distribution"
|
11
12
|
],
|
12
13
|
"dependencies": {
|
13
|
-
"@mainsail/
|
14
|
-
"@mainsail/
|
15
|
-
"@mainsail/
|
16
|
-
"@mainsail/
|
17
|
-
"@mainsail/
|
14
|
+
"@mainsail/contracts": "0.0.1-alpha.12",
|
15
|
+
"@mainsail/container": "0.0.1-alpha.12",
|
16
|
+
"@mainsail/crypto-transaction": "0.0.1-alpha.12",
|
17
|
+
"@mainsail/kernel": "0.0.1-alpha.12",
|
18
|
+
"@mainsail/utils": "0.0.1-alpha.12"
|
18
19
|
},
|
19
20
|
"devDependencies": {
|
20
21
|
"dayjs": "1.11.10",
|