@mainsail/transactions 0.0.1-alpha.17 → 0.0.1-alpha.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/transaction.d.ts +2 -1
- package/distribution/handlers/transaction.d.ts.map +1 -1
- package/distribution/handlers/transaction.js +5 -2
- package/distribution/handlers/transaction.js.map +1 -1
- package/distribution/service-provider.d.ts.map +1 -1
- package/distribution/service-provider.js +5 -0
- package/distribution/service-provider.js.map +1 -1
- package/distribution/transaction-validator.d.ts +10 -0
- package/distribution/transaction-validator.d.ts.map +1 -0
- package/distribution/transaction-validator.js +62 -0
- package/distribution/transaction-validator.js.map +1 -0
- package/package.json +7 -7
@@ -5,11 +5,12 @@ export declare abstract class TransactionHandler implements Contracts.Transactio
|
|
5
5
|
protected readonly logger: Contracts.Kernel.Logger;
|
6
6
|
protected readonly configuration: Contracts.Crypto.Configuration;
|
7
7
|
protected readonly verifier: Contracts.Crypto.TransactionVerifier;
|
8
|
+
protected readonly eventDispatcher: Contracts.Kernel.EventDispatcher;
|
8
9
|
verify(walletRepository: Contracts.State.WalletRepository, transaction: Contracts.Crypto.Transaction): Promise<boolean>;
|
9
10
|
throwIfCannotBeApplied(walletRepository: Contracts.State.WalletRepository, transaction: Contracts.Crypto.Transaction, sender: Contracts.State.Wallet): Promise<void>;
|
10
11
|
apply(walletRepository: Contracts.State.WalletRepository, transaction: Contracts.Crypto.Transaction): Promise<void>;
|
11
12
|
applyToSender(walletRepository: Contracts.State.WalletRepository, transaction: Contracts.Crypto.Transaction): Promise<void>;
|
12
|
-
emitEvents(transaction: Contracts.Crypto.Transaction
|
13
|
+
emitEvents(transaction: Contracts.Crypto.Transaction): void;
|
13
14
|
walletAttributes(): ReadonlyArray<{
|
14
15
|
name: string;
|
15
16
|
type: Contracts.State.AttributeType;
|
@@ -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;
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2B,MAAM,qBAAqB,CAAC;AAIzE,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,eAAe,EAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;IAEzD,MAAM,CAClB,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAClD,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GACvC,OAAO,CAAC,OAAO,CAAC;IAcN,sBAAsB,CAClC,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAClD,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EACzC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,GAC5B,OAAO,CAAC,IAAI,CAAC;IA2DH,KAAK,CACjB,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAClD,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GACvC,OAAO,CAAC,IAAI,CAAC;IAKH,aAAa,CACzB,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAClD,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GACvC,OAAO,CAAC,IAAI,CAAC;IAmBT,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI;IAE3D,gBAAgB,IAAI,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,aAAa,CAAA;KAAE,CAAC;IAIlF,sBAAsB,CAClC,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAClD,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GACvC,OAAO,CAAC,IAAI,CAAC;IAEH,gBAAgB,CAC5B,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAC9B,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,EAC7C,cAAc,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,mBAAmB,GACnD,OAAO,CAAC,OAAO,CAAC;IAYnB,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE;aAS3F,cAAc,IAAI,SAAS,CAAC,MAAM,CAAC,sBAAsB;aAEzD,YAAY,IAAI,aAAa,CAAC,6BAA6B,CAAC;aAE5D,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;aAE/B,gBAAgB,CAC/B,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAClD,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GACvC,OAAO,CAAC,IAAI,CAAC;CAChB;AAED,MAAM,MAAM,6BAA6B,GAAG,UAAU,kBAAkB,CAAC"}
|
@@ -17,7 +17,6 @@ import { inject, injectable } from "@mainsail/container";
|
|
17
17
|
import { Contracts, Exceptions, Identifiers } from "@mainsail/contracts";
|
18
18
|
import { Utils as AppUtils } from "@mainsail/kernel";
|
19
19
|
import { BigNumber } from "@mainsail/utils";
|
20
|
-
// @TODO revisit the implementation, container usage and arguments after database rework
|
21
20
|
let TransactionHandler = class TransactionHandler {
|
22
21
|
constructor() {
|
23
22
|
_TransactionHandler_instances.add(this);
|
@@ -82,7 +81,7 @@ let TransactionHandler = class TransactionHandler {
|
|
82
81
|
const newBalance = sender.getBalance().minus(data.fee);
|
83
82
|
sender.setBalance(newBalance);
|
84
83
|
}
|
85
|
-
emitEvents(transaction
|
84
|
+
emitEvents(transaction) { }
|
86
85
|
walletAttributes() {
|
87
86
|
return [];
|
88
87
|
}
|
@@ -119,6 +118,10 @@ __decorate([
|
|
119
118
|
inject(Identifiers.Cryptography.Transaction.Verifier),
|
120
119
|
__metadata("design:type", Object)
|
121
120
|
], TransactionHandler.prototype, "verifier", void 0);
|
121
|
+
__decorate([
|
122
|
+
inject(Identifiers.Services.EventDispatcher.Service),
|
123
|
+
__metadata("design:type", Object)
|
124
|
+
], TransactionHandler.prototype, "eventDispatcher", void 0);
|
122
125
|
TransactionHandler = __decorate([
|
123
126
|
injectable()
|
124
127
|
], TransactionHandler);
|
@@ -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,KAAK,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"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"}
|
@@ -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;AAG7C,OAAO,EAAE,6BAA6B,EAA8B,MAAM,qBAAqB,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;AAGhG,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;IAezB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;CAGzC"}
|
@@ -2,6 +2,7 @@ import { Identifiers } from "@mainsail/contracts";
|
|
2
2
|
import { Providers } from "@mainsail/kernel";
|
3
3
|
import { TransactionHandlerRegistry } from "./handlers/handler-registry.js";
|
4
4
|
import { TransactionHandlerProvider } from "./handlers/index.js";
|
5
|
+
import { TransactionValidator } from "./transaction-validator.js";
|
5
6
|
export class ServiceProvider extends Providers.ServiceProvider {
|
6
7
|
static getTransactionHandlerConstructorsBinding() {
|
7
8
|
return (context) => {
|
@@ -26,6 +27,10 @@ export class ServiceProvider extends Providers.ServiceProvider {
|
|
26
27
|
.bind(Identifiers.Transaction.Handler.Constructors)
|
27
28
|
.toDynamicValue(ServiceProvider.getTransactionHandlerConstructorsBinding());
|
28
29
|
this.app.bind(Identifiers.Transaction.Handler.Registry).to(TransactionHandlerRegistry);
|
30
|
+
this.app.bind(Identifiers.Transaction.Validator.Instance).to(TransactionValidator);
|
31
|
+
this.app
|
32
|
+
.bind(Identifiers.Transaction.Validator.Factory)
|
33
|
+
.toAutoFactory(Identifiers.Transaction.Validator.Instance);
|
29
34
|
}
|
30
35
|
async required() {
|
31
36
|
return true;
|
@@ -1 +1 @@
|
|
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;
|
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;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,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;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,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;aAC/C,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,QAAQ;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Contracts } from "@mainsail/contracts";
|
2
|
+
export declare class TransactionValidator implements Contracts.Transactions.TransactionValidator {
|
3
|
+
#private;
|
4
|
+
private readonly handlerRegistry;
|
5
|
+
private readonly stateService;
|
6
|
+
private readonly transactionFactory;
|
7
|
+
initialize(): void;
|
8
|
+
validate(transaction: Contracts.Crypto.Transaction): Promise<void>;
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=transaction-validator.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"transaction-validator.d.ts","sourceRoot":"","sources":["../source/transaction-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAG7D,qBACa,oBAAqB,YAAW,SAAS,CAAC,YAAY,CAAC,oBAAoB;;IAEvF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;IAGrF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IAGxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAKnE,UAAU,IAAI,IAAI;IAIZ,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ/E"}
|
@@ -0,0 +1,62 @@
|
|
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 __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
11
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
13
|
+
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");
|
14
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
15
|
+
};
|
16
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
17
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
18
|
+
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");
|
19
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
20
|
+
};
|
21
|
+
var _TransactionValidator_walletRepository;
|
22
|
+
import { inject, injectable, postConstruct } from "@mainsail/container";
|
23
|
+
import { Contracts, Identifiers } from "@mainsail/contracts";
|
24
|
+
import { strictEqual } from "assert";
|
25
|
+
let TransactionValidator = class TransactionValidator {
|
26
|
+
constructor() {
|
27
|
+
_TransactionValidator_walletRepository.set(this, void 0);
|
28
|
+
}
|
29
|
+
initialize() {
|
30
|
+
__classPrivateFieldSet(this, _TransactionValidator_walletRepository, this.stateService.createStoreClone().walletRepository, "f");
|
31
|
+
}
|
32
|
+
async validate(transaction) {
|
33
|
+
const deserialized = await this.transactionFactory.fromBytes(transaction.serialized);
|
34
|
+
strictEqual(transaction.id, deserialized.id);
|
35
|
+
const handler = await this.handlerRegistry.getActivatedHandlerForData(transaction.data);
|
36
|
+
await handler.apply(__classPrivateFieldGet(this, _TransactionValidator_walletRepository, "f"), transaction);
|
37
|
+
}
|
38
|
+
};
|
39
|
+
_TransactionValidator_walletRepository = new WeakMap();
|
40
|
+
__decorate([
|
41
|
+
inject(Identifiers.Transaction.Handler.Registry),
|
42
|
+
__metadata("design:type", Object)
|
43
|
+
], TransactionValidator.prototype, "handlerRegistry", void 0);
|
44
|
+
__decorate([
|
45
|
+
inject(Identifiers.State.Service),
|
46
|
+
__metadata("design:type", Object)
|
47
|
+
], TransactionValidator.prototype, "stateService", void 0);
|
48
|
+
__decorate([
|
49
|
+
inject(Identifiers.Cryptography.Transaction.Factory),
|
50
|
+
__metadata("design:type", Object)
|
51
|
+
], TransactionValidator.prototype, "transactionFactory", void 0);
|
52
|
+
__decorate([
|
53
|
+
postConstruct(),
|
54
|
+
__metadata("design:type", Function),
|
55
|
+
__metadata("design:paramtypes", []),
|
56
|
+
__metadata("design:returntype", void 0)
|
57
|
+
], TransactionValidator.prototype, "initialize", null);
|
58
|
+
TransactionValidator = __decorate([
|
59
|
+
injectable()
|
60
|
+
], TransactionValidator);
|
61
|
+
export { TransactionValidator };
|
62
|
+
//# sourceMappingURL=transaction-validator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"transaction-validator.js","sourceRoot":"","sources":["../source/transaction-validator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QAUN,yDAAqD;IAetD,CAAC;IAZO,UAAU;QAChB,uBAAA,IAAI,0CAAqB,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,MAAA,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,WAAyC;QAC9D,MAAM,YAAY,GAAiC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CACzF,WAAW,CAAC,UAAU,CACtB,CAAC;QACF,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,OAAO,CAAC,KAAK,CAAC,uBAAA,IAAI,8CAAkB,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;CACD,CAAA;;AAvBiB;IADhB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;;6DACoC;AAGpE;IADhB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;;0DACsB;AAGvC;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;;gEACqB;AAKnE;IADN,aAAa,EAAE;;;;sDAGf;AAfW,oBAAoB;IADhC,UAAU,EAAE;GACA,oBAAoB,CAyBhC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@mainsail/transactions",
|
3
|
-
"version": "0.0.1-alpha.
|
3
|
+
"version": "0.0.1-alpha.19",
|
4
4
|
"description": "Transaction Services for Mainsail blockchain",
|
5
5
|
"license": "GPL-3.0-only",
|
6
6
|
"contributors": [],
|
@@ -11,16 +11,16 @@
|
|
11
11
|
"/distribution"
|
12
12
|
],
|
13
13
|
"dependencies": {
|
14
|
-
"@mainsail/
|
15
|
-
"@mainsail/
|
16
|
-
"@mainsail/kernel": "0.0.1-alpha.
|
17
|
-
"@mainsail/
|
18
|
-
"@mainsail/utils": "0.0.1-alpha.
|
14
|
+
"@mainsail/contracts": "0.0.1-alpha.19",
|
15
|
+
"@mainsail/crypto-transaction": "0.0.1-alpha.19",
|
16
|
+
"@mainsail/kernel": "0.0.1-alpha.19",
|
17
|
+
"@mainsail/container": "0.0.1-alpha.19",
|
18
|
+
"@mainsail/utils": "0.0.1-alpha.19"
|
19
19
|
},
|
20
20
|
"devDependencies": {
|
21
21
|
"dayjs": "1.11.10",
|
22
22
|
"uvu": "^0.5.6",
|
23
|
-
"@mainsail/crypto-config": "0.0.1-alpha.
|
23
|
+
"@mainsail/crypto-config": "0.0.1-alpha.19"
|
24
24
|
},
|
25
25
|
"engines": {
|
26
26
|
"node": ">=20.x"
|