@mainsail/transactions 0.0.1-evm.17 → 0.0.1-evm.19
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-registry.d.ts +0 -2
- package/distribution/handlers/handler-registry.d.ts.map +1 -1
- package/distribution/handlers/handler-registry.js +1 -17
- package/distribution/handlers/handler-registry.js.map +1 -1
- package/distribution/handlers/index.d.ts +0 -1
- package/distribution/handlers/index.d.ts.map +1 -1
- package/distribution/handlers/index.js +0 -1
- package/distribution/handlers/index.js.map +1 -1
- package/distribution/handlers/transaction.d.ts.map +1 -1
- package/distribution/handlers/transaction.js +6 -12
- package/distribution/handlers/transaction.js.map +1 -1
- package/distribution/service-provider.d.ts +0 -3
- package/distribution/service-provider.d.ts.map +1 -1
- package/distribution/service-provider.js +14 -25
- package/distribution/service-provider.js.map +1 -1
- package/distribution/transaction-validator.js +2 -2
- package/distribution/transaction-validator.js.map +1 -1
- package/package.json +6 -7
- package/distribution/handlers/handler-provider.d.ts +0 -8
- package/distribution/handlers/handler-provider.d.ts.map +0 -1
- package/distribution/handlers/handler-provider.js +0 -56
- package/distribution/handlers/handler-provider.js.map +0 -1
@@ -1,9 +1,7 @@
|
|
1
1
|
import { Contracts } from "@mainsail/contracts";
|
2
2
|
import { TransactionHandler } from "./transaction.js";
|
3
3
|
export declare class TransactionHandlerRegistry implements Contracts.Transactions.TransactionHandlerRegistry {
|
4
|
-
private readonly provider;
|
5
4
|
private readonly handlers;
|
6
|
-
initialize(): void;
|
7
5
|
getRegisteredHandlers(): TransactionHandler[];
|
8
6
|
getRegisteredHandlerByType(internalType: number, version?: number): TransactionHandler;
|
9
7
|
getActivatedHandlers(): Promise<TransactionHandler[]>;
|
@@ -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;
|
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;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBACa,0BAA2B,YAAW,SAAS,CAAC,YAAY,CAAC,0BAA0B;IAEnG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IAE1C,qBAAqB,IAAI,kBAAkB,EAAE;IAI7C,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,kBAAkB;IAM3E,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IASrD,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQzF,0BAA0B,CACtC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,GAC/C,OAAO,CAAC,kBAAkB,CAAC;CAG9B"}
|
@@ -7,16 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
9
9
|
};
|
10
|
-
import {
|
10
|
+
import { injectable, multiInject } from "@mainsail/container";
|
11
11
|
import { Exceptions, Identifiers } from "@mainsail/contracts";
|
12
12
|
import { assert } from "@mainsail/utils";
|
13
|
-
import { TransactionHandlerProvider } from "./handler-provider.js";
|
14
13
|
let TransactionHandlerRegistry = class TransactionHandlerRegistry {
|
15
|
-
initialize() {
|
16
|
-
if (this.provider.isRegistrationRequired()) {
|
17
|
-
this.provider.registerHandlers();
|
18
|
-
}
|
19
|
-
}
|
20
14
|
getRegisteredHandlers() {
|
21
15
|
return this.handlers;
|
22
16
|
}
|
@@ -42,20 +36,10 @@ let TransactionHandlerRegistry = class TransactionHandlerRegistry {
|
|
42
36
|
return this.getActivatedHandlerByType(0, 0);
|
43
37
|
}
|
44
38
|
};
|
45
|
-
__decorate([
|
46
|
-
inject(Identifiers.Transaction.Handler.Provider),
|
47
|
-
__metadata("design:type", TransactionHandlerProvider)
|
48
|
-
], TransactionHandlerRegistry.prototype, "provider", void 0);
|
49
39
|
__decorate([
|
50
40
|
multiInject(Identifiers.Transaction.Handler.Instances),
|
51
41
|
__metadata("design:type", Array)
|
52
42
|
], TransactionHandlerRegistry.prototype, "handlers", void 0);
|
53
|
-
__decorate([
|
54
|
-
postConstruct(),
|
55
|
-
__metadata("design:type", Function),
|
56
|
-
__metadata("design:paramtypes", []),
|
57
|
-
__metadata("design:returntype", void 0)
|
58
|
-
], TransactionHandlerRegistry.prototype, "initialize", null);
|
59
43
|
TransactionHandlerRegistry = __decorate([
|
60
44
|
injectable()
|
61
45
|
], TransactionHandlerRegistry);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handler-registry.js","sourceRoot":"","sources":["../../source/handlers/handler-registry.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"handler-registry.js","sourceRoot":"","sources":["../../source/handlers/handler-registry.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAa,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAKlC,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAI/B,qBAAqB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,0BAA0B,CAAC,YAAoB,EAAE,OAAO,GAAG,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CACjC,KAAK,EAAE,OAAO,EAA0C,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CACjG,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAChE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAC,YAAoB,EAAE,OAAO,GAAG,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,0BAA0B,CACtC,eAAiD;QAEjD,OAAO,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;CACD,CAAA;AAlCiB;IADhB,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;;4DACN;AAFrC,0BAA0B;IADtC,UAAU,EAAE;GACA,0BAA0B,CAoCtC"}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
export { TransactionHandlerProvider } from "./handler-provider.js";
|
2
1
|
export { TransactionHandlerRegistry as Registry } from "./handler-registry.js";
|
3
2
|
export type { TransactionHandlerConstructor } from "./transaction.js";
|
4
3
|
export { TransactionHandler } from "./transaction.js";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAGzE,8BACsB,kBAAmB,YAAW,SAAS,CAAC,YAAY,CAAC,kBAAkB;IAE5F,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAGnE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAG,SAAS,CAAC,eAAe,CAAC,aAAa,CAAC;IAG3E,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;IAEzD,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE,sBAAsB,CAClC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EACzC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAC9B,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,GACzB,OAAO,CAAC,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAGzE,8BACsB,kBAAmB,YAAW,SAAS,CAAC,YAAY,CAAC,kBAAkB;IAE5F,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAGnE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAG,SAAS,CAAC,eAAe,CAAC,aAAa,CAAC;IAG3E,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;IAEzD,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE,sBAAsB,CAClC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EACzC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAC9B,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,GACzB,OAAO,CAAC,IAAI,CAAC;IA8CT,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI;IAErD,gBAAgB,CAC5B,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAC9B,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,EAC7C,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,mBAAmB,GAClD,OAAO,CAAC,OAAO,CAAC;aAIH,KAAK,CACpB,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,yBAAyB,EACzD,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GACvC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC;aAE5B,cAAc,IAAI,SAAS,CAAC,MAAM,CAAC,sBAAsB;aAEzD,YAAY,IAAI,aAAa,CAAC,6BAA6B,CAAC;aAE5D,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAC/C;AAED,MAAM,MAAM,6BAA6B,GAAG,UAAU,kBAAkB,CAAC"}
|
@@ -12,7 +12,7 @@ import { Contracts, Exceptions, Identifiers } from "@mainsail/contracts";
|
|
12
12
|
import { assert } from "@mainsail/utils";
|
13
13
|
let TransactionHandler = class TransactionHandler {
|
14
14
|
async verify(transaction) {
|
15
|
-
assert.string(transaction.data.
|
15
|
+
assert.string(transaction.data.from);
|
16
16
|
return this.verifier.verifyHash(transaction.data);
|
17
17
|
}
|
18
18
|
async throwIfCannotBeApplied(transaction, sender, evm) {
|
@@ -28,14 +28,8 @@ let TransactionHandler = class TransactionHandler {
|
|
28
28
|
throw new Exceptions.InsufficientBalanceError();
|
29
29
|
}
|
30
30
|
// Legacy
|
31
|
-
// TODO: move check
|
32
31
|
if (sender.hasLegacySecondPublicKey()) {
|
33
|
-
|
34
|
-
throw new Exceptions.MissingLegacySecondSignatureError();
|
35
|
-
}
|
36
|
-
if (!(await this.verifier.verifyLegacySecondSignature(transaction.data, sender.legacySecondPublicKey()))) {
|
37
|
-
throw new Exceptions.InvalidLegacySecondSignatureError();
|
38
|
-
}
|
32
|
+
await this.verifier.verifyLegacySecondSignature(transaction.data, sender.legacySecondPublicKey());
|
39
33
|
}
|
40
34
|
else {
|
41
35
|
if (transaction.data.legacySecondSignature) {
|
@@ -45,15 +39,15 @@ let TransactionHandler = class TransactionHandler {
|
|
45
39
|
const milestone = this.configuration.getMilestone();
|
46
40
|
const preverified = await evm.preverifyTransaction({
|
47
41
|
blockGasLimit: BigInt(milestone.block.maxGasLimit),
|
48
|
-
caller: transaction.data.senderAddress,
|
49
42
|
data: Buffer.from(transaction.data.data, "hex"),
|
50
|
-
|
43
|
+
from: transaction.data.from,
|
44
|
+
gasLimit: BigInt(transaction.data.gas),
|
51
45
|
gasPrice: BigInt(transaction.data.gasPrice),
|
52
46
|
legacyAddress: transaction.data.senderLegacyAddress,
|
53
47
|
nonce: transaction.data.nonce.toBigInt(),
|
54
|
-
recipient: transaction.data.recipientAddress,
|
55
48
|
specId: milestone.evmSpec,
|
56
|
-
|
49
|
+
to: transaction.data.to,
|
50
|
+
txHash: transaction.data.hash,
|
57
51
|
value: transaction.data.value.toBigInt(),
|
58
52
|
});
|
59
53
|
if (!preverified.success) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGlC,IAAe,kBAAkB,GAAjC,MAAe,kBAAkB;IAmBhC,KAAK,CAAC,MAAM,CAAC,WAAyC;QAC5D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,5 @@
|
|
1
|
-
import { interfaces } from "@mainsail/container";
|
2
1
|
import { Providers } from "@mainsail/kernel";
|
3
|
-
import { TransactionHandlerConstructor } from "./handlers/index.js";
|
4
2
|
export declare class ServiceProvider extends Providers.ServiceProvider {
|
5
|
-
static getTransactionHandlerConstructorsBinding(): (context: interfaces.Context) => TransactionHandlerConstructor[];
|
6
3
|
register(): Promise<void>;
|
7
4
|
required(): Promise<boolean>;
|
8
5
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"service-provider.d.ts","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"service-provider.d.ts","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7C,qBACa,eAAgB,SAAQ,SAAS,CAAC,eAAe;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAYzB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;CAGzC"}
|
@@ -1,39 +1,28 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
import { injectable } from "@mainsail/container";
|
1
8
|
import { Identifiers } from "@mainsail/contracts";
|
2
9
|
import { Providers } from "@mainsail/kernel";
|
3
10
|
import { TransactionHandlerRegistry } from "./handlers/handler-registry.js";
|
4
|
-
import { TransactionHandlerProvider } from "./handlers/index.js";
|
5
11
|
import { TransactionValidator } from "./transaction-validator.js";
|
6
|
-
|
7
|
-
static getTransactionHandlerConstructorsBinding() {
|
8
|
-
return (context) => {
|
9
|
-
const handlerConstructors = [];
|
10
|
-
let container = context.container;
|
11
|
-
do {
|
12
|
-
const bindingDictionary = container["_bindingDictionary"];
|
13
|
-
const handlerBindings = bindingDictionary.getMap().get(Identifiers.Transaction.Handler.Instances) ?? [];
|
14
|
-
for (const handlerBinding of handlerBindings) {
|
15
|
-
if (handlerBinding.implementationType) {
|
16
|
-
handlerConstructors.push(handlerBinding.implementationType);
|
17
|
-
}
|
18
|
-
}
|
19
|
-
container = container.parent;
|
20
|
-
} while (container);
|
21
|
-
return handlerConstructors;
|
22
|
-
};
|
23
|
-
}
|
12
|
+
let ServiceProvider = class ServiceProvider extends Providers.ServiceProvider {
|
24
13
|
async register() {
|
25
|
-
this.app.bind(Identifiers.Transaction.Handler.Provider).to(TransactionHandlerProvider).inSingletonScope();
|
26
|
-
this.app
|
27
|
-
.bind(Identifiers.Transaction.Handler.Constructors)
|
28
|
-
.toDynamicValue(ServiceProvider.getTransactionHandlerConstructorsBinding());
|
29
14
|
this.app.bind(Identifiers.Transaction.Handler.Registry).to(TransactionHandlerRegistry);
|
30
15
|
this.app.bind(Identifiers.Transaction.Validator.Instance).to(TransactionValidator);
|
31
16
|
this.app
|
32
17
|
.bind(Identifiers.Transaction.Validator.Factory)
|
33
|
-
.
|
18
|
+
.toFactory((context) => () => context.get(Identifiers.Transaction.Validator.Instance));
|
34
19
|
}
|
35
20
|
async required() {
|
36
21
|
return true;
|
37
22
|
}
|
38
|
-
}
|
23
|
+
};
|
24
|
+
ServiceProvider = __decorate([
|
25
|
+
injectable()
|
26
|
+
], ServiceProvider);
|
27
|
+
export { ServiceProvider };
|
39
28
|
//# 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":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAa,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAG3D,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAC,eAAe;IACtD,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;QAEvF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;QACnF,IAAI,CAAC,GAAG;aACN,IAAI,CAA6B,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;aAC3E,SAAS,CACT,CAAC,OAAqD,EAAE,EAAE,CAAC,GAAG,EAAE,CAC/D,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CACxD,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,QAAQ;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AAhBY,eAAe;IAD3B,UAAU,EAAE;GACA,eAAe,CAgB3B"}
|
@@ -17,7 +17,7 @@ let TransactionValidator = class TransactionValidator {
|
|
17
17
|
}
|
18
18
|
async validate(context, transaction) {
|
19
19
|
const deserialized = await this.transactionFactory.fromBytes(transaction.serialized);
|
20
|
-
strictEqual(transaction.
|
20
|
+
strictEqual(transaction.hash, deserialized.hash);
|
21
21
|
const { commitKey, gasLimit, timestamp, generatorAddress } = context;
|
22
22
|
const handler = await this.handlerRegistry.getActivatedHandlerForData(transaction.data);
|
23
23
|
const receipt = await handler.apply({
|
@@ -31,7 +31,7 @@ let TransactionValidator = class TransactionValidator {
|
|
31
31
|
instance: this.evm,
|
32
32
|
},
|
33
33
|
}, transaction);
|
34
|
-
assert.string(transaction.data.
|
34
|
+
assert.string(transaction.data.from);
|
35
35
|
return receipt;
|
36
36
|
}
|
37
37
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transaction-validator.js","sourceRoot":"","sources":["../source/transaction-validator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAWzB,MAAM;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,QAAQ,CACpB,OAA2D,EAC3D,WAAyC;QAEzC,MAAM,YAAY,GAAiC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CACzF,WAAW,CAAC,UAAU,CACtB,CAAC;QACF,WAAW,CAAC,WAAW,CAAC,
|
1
|
+
{"version":3,"file":"transaction-validator.js","sourceRoot":"","sources":["../source/transaction-validator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAWzB,MAAM;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,QAAQ,CACpB,OAA2D,EAC3D,WAAyC;QAEzC,MAAM,YAAY,GAAiC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CACzF,WAAW,CAAC,UAAU,CACtB,CAAC;QACF,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QAEjD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;QAErE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAClC;YACC,GAAG,EAAE;gBACJ,YAAY,EAAE;oBACb,SAAS;oBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;oBAC1B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;oBAC5B,gBAAgB,EAAE,gBAAgB;iBAClC;gBACD,QAAQ,EAAE,IAAI,CAAC,GAAG;aAClB;SACD,EACD,WAAW,CACX,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAA;AA3CiB;IAFhB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC;;iDACc;AAG7B;IADhB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;;6DACoC;AAGpE;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;;gEACqB;AAT9D,oBAAoB;IADhC,UAAU,EAAE;GACA,oBAAoB,CA8ChC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@mainsail/transactions",
|
3
|
-
"version": "0.0.1-evm.
|
3
|
+
"version": "0.0.1-evm.19",
|
4
4
|
"description": "Transaction Services for Mainsail blockchain",
|
5
5
|
"license": "GPL-3.0-only",
|
6
6
|
"contributors": [],
|
@@ -11,11 +11,10 @@
|
|
11
11
|
"/distribution"
|
12
12
|
],
|
13
13
|
"dependencies": {
|
14
|
-
"@mainsail/
|
15
|
-
"@mainsail/contracts": "0.0.1-evm.
|
16
|
-
"@mainsail/
|
17
|
-
"@mainsail/utils": "0.0.1-evm.
|
18
|
-
"@mainsail/kernel": "0.0.1-evm.17"
|
14
|
+
"@mainsail/container": "0.0.1-evm.19",
|
15
|
+
"@mainsail/contracts": "0.0.1-evm.19",
|
16
|
+
"@mainsail/kernel": "0.0.1-evm.19",
|
17
|
+
"@mainsail/utils": "0.0.1-evm.19"
|
19
18
|
},
|
20
19
|
"devDependencies": {
|
21
20
|
"uvu": "0.5.6"
|
@@ -29,7 +28,7 @@
|
|
29
28
|
"clean": "del distribution",
|
30
29
|
"release": "pnpm publish --access public",
|
31
30
|
"test": "pnpm run uvu source .test.ts",
|
32
|
-
"test:coverage": "c8 pnpm run test",
|
31
|
+
"test:coverage": "c8 -r=text -r=lcov --all pnpm run test",
|
33
32
|
"test:coverage:html": "c8 -r html --all pnpm run test",
|
34
33
|
"test:file": "pnpm run uvu source",
|
35
34
|
"uvu": "tsx --tsconfig ../../tsconfig.test.json ./node_modules/uvu/bin.js"
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import { Contracts } from "@mainsail/contracts";
|
2
|
-
export declare class TransactionHandlerProvider implements Contracts.Transactions.TransactionHandlerProvider {
|
3
|
-
#private;
|
4
|
-
private readonly handlerConstructors;
|
5
|
-
isRegistrationRequired(): boolean;
|
6
|
-
registerHandlers(): void;
|
7
|
-
}
|
8
|
-
//# sourceMappingURL=handler-provider.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"handler-provider.d.ts","sourceRoot":"","sources":["../../source/handlers/handler-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAK7D,qBACa,0BAA2B,YAAW,SAAS,CAAC,YAAY,CAAC,0BAA0B;;IAEnG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmC;IAKhE,sBAAsB,IAAI,OAAO;IAIjC,gBAAgB,IAAI,IAAI;CAc/B"}
|
@@ -1,56 +0,0 @@
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
-
};
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
9
|
-
};
|
10
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
11
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
12
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
13
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
14
|
-
};
|
15
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
16
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
17
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
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");
|
19
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
20
|
-
};
|
21
|
-
var _TransactionHandlerProvider_instances, _TransactionHandlerProvider_registered, _TransactionHandlerProvider_handlerDependencyLookup, _TransactionHandlerProvider_registerHandler;
|
22
|
-
import { inject, injectable } from "@mainsail/container";
|
23
|
-
import { Identifiers } from "@mainsail/contracts";
|
24
|
-
let TransactionHandlerProvider = class TransactionHandlerProvider {
|
25
|
-
constructor() {
|
26
|
-
_TransactionHandlerProvider_instances.add(this);
|
27
|
-
_TransactionHandlerProvider_registered.set(this, false);
|
28
|
-
_TransactionHandlerProvider_handlerDependencyLookup.set(this, new Set());
|
29
|
-
}
|
30
|
-
isRegistrationRequired() {
|
31
|
-
return __classPrivateFieldGet(this, _TransactionHandlerProvider_registered, "f") === false;
|
32
|
-
}
|
33
|
-
registerHandlers() {
|
34
|
-
for (const handlerConstructor of this.handlerConstructors) {
|
35
|
-
__classPrivateFieldGet(this, _TransactionHandlerProvider_instances, "m", _TransactionHandlerProvider_registerHandler).call(this, handlerConstructor);
|
36
|
-
}
|
37
|
-
__classPrivateFieldSet(this, _TransactionHandlerProvider_registered, true, "f");
|
38
|
-
}
|
39
|
-
};
|
40
|
-
_TransactionHandlerProvider_registered = new WeakMap();
|
41
|
-
_TransactionHandlerProvider_handlerDependencyLookup = new WeakMap();
|
42
|
-
_TransactionHandlerProvider_instances = new WeakSet();
|
43
|
-
_TransactionHandlerProvider_registerHandler = function _TransactionHandlerProvider_registerHandler(handlerConstructor) {
|
44
|
-
const handler = new handlerConstructor();
|
45
|
-
const transactionConstructor = handler.getConstructor();
|
46
|
-
__classPrivateFieldGet(this, _TransactionHandlerProvider_handlerDependencyLookup, "f").add(transactionConstructor);
|
47
|
-
};
|
48
|
-
__decorate([
|
49
|
-
inject(Identifiers.Transaction.Handler.Constructors),
|
50
|
-
__metadata("design:type", Array)
|
51
|
-
], TransactionHandlerProvider.prototype, "handlerConstructors", void 0);
|
52
|
-
TransactionHandlerProvider = __decorate([
|
53
|
-
injectable()
|
54
|
-
], TransactionHandlerProvider);
|
55
|
-
export { TransactionHandlerProvider };
|
56
|
-
//# sourceMappingURL=handler-provider.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"handler-provider.js","sourceRoot":"","sources":["../../source/handlers/handler-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAa,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMtD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;;QAIN,iDAAc,KAAK,EAAC;QACpB,8DAA2B,IAAI,GAAG,EAA0B,EAAC;IAoB9D,CAAC;IAlBO,sBAAsB;QAC5B,OAAO,uBAAA,IAAI,8CAAY,KAAK,KAAK,CAAC;IACnC,CAAC;IAEM,gBAAgB;QACtB,KAAK,MAAM,kBAAkB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3D,uBAAA,IAAI,0FAAiB,MAArB,IAAI,EAAkB,kBAAkB,CAAC,CAAC;QAC3C,CAAC;QAED,uBAAA,IAAI,0CAAe,IAAI,MAAA,CAAC;IACzB,CAAC;CAQD,CAAA;;;;mGANiB,kBAAiD;IACjE,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACzC,MAAM,sBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAExD,uBAAA,IAAI,2DAAyB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC3D,CAAC;AAtBgB;IADhB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;;uEACkB;AAF3D,0BAA0B;IADtC,UAAU,EAAE;GACA,0BAA0B,CAyBtC"}
|