@mainsail/transactions 0.0.1-evm.2 → 0.0.1-evm.4

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.
@@ -1,7 +1,6 @@
1
1
  import { Contracts } from "@mainsail/contracts";
2
2
  export declare class TransactionHandlerProvider implements Contracts.Transactions.TransactionHandlerProvider {
3
3
  #private;
4
- private readonly attributeRepository;
5
4
  private readonly handlerConstructors;
6
5
  private readonly transactionRegistry;
7
6
  isRegistrationRequired(): boolean;
@@ -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;IAKrE,sBAAsB,IAAI,OAAO;IAIjC,gBAAgB,IAAI,IAAI;CAkF/B"}
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,CAAmC;IAGvE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAKrE,sBAAsB,IAAI,OAAO;IAIjC,gBAAgB,IAAI,IAAI;CA4E/B"}
@@ -57,11 +57,6 @@ _TransactionHandlerProvider_registerHandler = function _TransactionHandlerProvid
57
57
  throw new Exceptions.UnsatisfiedDependencyError(internalType);
58
58
  }
59
59
  }
60
- for (const attribute of handler.walletAttributes()) {
61
- if (!this.attributeRepository.has(attribute.name)) {
62
- this.attributeRepository.set(attribute.name, attribute.type);
63
- }
64
- }
65
60
  if (transactionConstructor.typeGroup !== Contracts.Crypto.TransactionTypeGroup.Core) {
66
61
  this.transactionRegistry.registerTransactionType(transactionConstructor);
67
62
  }
@@ -88,10 +83,6 @@ _TransactionHandlerProvider_hasOtherHandler = function _TransactionHandlerProvid
88
83
  handler.typeGroup === dependency.typeGroup &&
89
84
  handler.version === dependency.version);
90
85
  };
91
- __decorate([
92
- inject(Identifiers.State.Wallet.Attributes),
93
- __metadata("design:type", Object)
94
- ], TransactionHandlerProvider.prototype, "attributeRepository", void 0);
95
86
  __decorate([
96
87
  inject(Identifiers.Transaction.Handler.Constructors),
97
88
  __metadata("design:type", Array)
@@ -1 +1 @@
1
- {"version":3,"file":"handler-provider.js","sourceRoot":"","sources":["../../source/handlers/handler-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-provider.js","sourceRoot":"","sources":["../../source/handlers/handler-provider.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,18 @@
1
1
  import { Contracts } from "@mainsail/contracts";
2
2
  export declare abstract class TransactionHandler implements Contracts.Transactions.TransactionHandler {
3
- #private;
4
3
  protected readonly app: Contracts.Kernel.Application;
4
+ protected readonly gasFeeCalculator: Contracts.Evm.GasFeeCalculator;
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
8
  protected readonly gasLimits: Contracts.Evm.GasLimits;
9
9
  protected readonly eventDispatcher: Contracts.Kernel.EventDispatcher;
10
- verify({ walletRepository }: Contracts.Transactions.TransactionHandlerContext, transaction: Contracts.Crypto.Transaction): Promise<boolean>;
11
- throwIfCannotBeApplied(context: Contracts.Transactions.TransactionHandlerContext, transaction: Contracts.Crypto.Transaction, sender: Contracts.State.Wallet): Promise<void>;
12
- apply(context: Contracts.Transactions.TransactionHandlerContext, transaction: Contracts.Crypto.Transaction): Promise<Contracts.Transactions.TransactionApplyResult>;
13
- applyToSender(context: Contracts.Transactions.TransactionHandlerContext, transaction: Contracts.Crypto.Transaction): Promise<Contracts.Transactions.TransactionApplyResult>;
14
- applyToRecipient(context: Contracts.Transactions.TransactionHandlerContext, transaction: Contracts.Crypto.Transaction): Promise<Contracts.Transactions.TransactionApplyResult>;
10
+ verify(transaction: Contracts.Crypto.Transaction): Promise<boolean>;
11
+ throwIfCannotBeApplied(transaction: Contracts.Crypto.Transaction, sender: Contracts.State.Wallet): Promise<void>;
15
12
  emitEvents(transaction: Contracts.Crypto.Transaction): void;
16
- walletAttributes(): ReadonlyArray<{
17
- name: string;
18
- type: Contracts.State.AttributeType;
19
- }>;
20
- throwIfCannotEnterPool(context: Contracts.Transactions.TransactionHandlerContext, transaction: Contracts.Crypto.Transaction): Promise<void>;
21
- verifySignatures(wallet: Contracts.State.Wallet, transaction: Contracts.Crypto.TransactionData, multiSignature?: Contracts.Crypto.MultiSignatureAsset): Promise<boolean>;
13
+ verifySignatures(wallet: Contracts.State.Wallet, transaction: Contracts.Crypto.TransactionData, multiSignature: Contracts.Crypto.MultiSignatureAsset): Promise<boolean>;
22
14
  protected allTransactions(transactions: Contracts.Crypto.Transaction[]): Contracts.Crypto.TransactionData[];
23
- protected verifyTransactionFee({ walletRepository }: Contracts.Transactions.TransactionHandlerContext, transaction: Contracts.Crypto.Transaction, sender: Contracts.State.Wallet): void;
24
- protected applyFeeToSender(transaction: Contracts.Crypto.Transaction, sender: Contracts.State.Wallet): void;
15
+ abstract apply(context: Contracts.Transactions.TransactionHandlerContext, transaction: Contracts.Crypto.Transaction): Promise<Contracts.Evm.TransactionReceipt>;
25
16
  abstract getConstructor(): Contracts.Crypto.TransactionConstructor;
26
17
  abstract dependencies(): ReadonlyArray<TransactionHandlerConstructor>;
27
18
  abstract isActivated(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"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"}
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,gBAAgB,EAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAGrE,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,SAAS,EAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;IAGvD,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,GAC5B,OAAO,CAAC,IAAI,CAAC;IAiBT,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;IAInB,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE;aAS3F,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"}
@@ -7,134 +7,45 @@ 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
- 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 _TransactionHandler_instances, _TransactionHandler_verifyTransactionNonceApply;
16
10
  import { inject, injectable } from "@mainsail/container";
17
11
  import { Contracts, Exceptions, Identifiers } from "@mainsail/contracts";
18
12
  import { Utils as AppUtils } from "@mainsail/kernel";
19
- import { BigNumber } from "@mainsail/utils";
20
13
  let TransactionHandler = class TransactionHandler {
21
- constructor() {
22
- _TransactionHandler_instances.add(this);
23
- }
24
- async verify({ walletRepository }, transaction) {
14
+ async verify(transaction) {
25
15
  AppUtils.assert.defined(transaction.data.senderPublicKey);
26
- const senderWallet = await walletRepository.findByPublicKey(transaction.data.senderPublicKey);
27
- if (senderWallet.hasMultiSignature()) {
28
- return this.verifySignatures(senderWallet, transaction.data);
29
- }
30
16
  return this.verifier.verifyHash(transaction.data);
31
17
  }
32
- async throwIfCannotBeApplied(context, transaction, sender) {
33
- const { walletRepository } = context;
34
- const senderWallet = walletRepository.findByAddress(sender.getAddress());
35
- AppUtils.assert.defined(sender.getPublicKey());
36
- if (!walletRepository.hasByPublicKey(sender.getPublicKey()) && senderWallet.getBalance().isZero()) {
37
- throw new Exceptions.ColdWalletError();
18
+ async throwIfCannotBeApplied(transaction, sender) {
19
+ if (!sender.getNonce().isEqualTo(transaction.data.nonce)) {
20
+ throw new Exceptions.UnexpectedNonceError(transaction.data.nonce, sender);
38
21
  }
39
- // @TODO: enforce fees here to support dynamic cases
40
- __classPrivateFieldGet(this, _TransactionHandler_instances, "m", _TransactionHandler_verifyTransactionNonceApply).call(this, sender, transaction);
41
- this.verifyTransactionFee(context, transaction, sender);
42
- if (sender.getBalance().minus(transaction.data.amount).minus(transaction.data.fee).isNegative() &&
22
+ if (sender
23
+ .getBalance()
24
+ .minus(transaction.data.amount)
25
+ .minus(this.gasFeeCalculator.calculate(transaction))
26
+ .isNegative() &&
43
27
  this.configuration.getHeight() > 0) {
44
28
  throw new Exceptions.InsufficientBalanceError();
45
29
  }
46
- if (transaction.data.senderPublicKey !== sender.getPublicKey()) {
47
- throw new Exceptions.SenderWalletMismatchError();
48
- }
49
- // Prevent legacy multi signatures from being used
50
- const isMultiSignatureRegistration = transaction.type === Contracts.Crypto.TransactionType.MultiSignature &&
51
- transaction.typeGroup === Contracts.Crypto.TransactionTypeGroup.Core;
52
- if (sender.hasMultiSignature()) {
53
- AppUtils.assert.defined(transaction.data.senderPublicKey);
54
- // Ensure the database wallet already has a multi signature, in case we checked a pool wallet.
55
- const databaseSender = await walletRepository.findByPublicKey(transaction.data.senderPublicKey);
56
- if (!databaseSender.hasMultiSignature()) {
57
- throw new Exceptions.MissingMultiSignatureOnSenderError();
58
- }
59
- if (databaseSender.hasAttribute("multiSignature.legacy")) {
60
- throw new Exceptions.LegacyMultiSignatureError();
61
- }
62
- if (!(await this.verifySignatures(databaseSender, transaction.data, databaseSender.getAttribute("multiSignature")))) {
63
- throw new Exceptions.InvalidMultiSignaturesError();
64
- }
65
- }
66
- else if (transaction.data.signatures && !isMultiSignatureRegistration) {
67
- throw new Exceptions.UnsupportedMultiSignatureRegistrationTransactionError();
68
- }
69
- }
70
- async apply(context, transaction) {
71
- const senderResult = await this.applyToSender(context, transaction);
72
- const recipientResult = await this.applyToRecipient(context, transaction);
73
- // Merge results; effectively only one is ever set depending on the transaction type.
74
- return {
75
- gasUsed: senderResult.gasUsed + recipientResult.gasUsed,
76
- receipt: recipientResult.receipt,
77
- };
78
- }
79
- async applyToSender(context, transaction) {
80
- AppUtils.assert.defined(transaction.data.senderPublicKey);
81
- const sender = await context.walletRepository.findByPublicKey(transaction.data.senderPublicKey);
82
- const data = transaction.data;
83
- await this.throwIfCannotBeApplied(context, transaction, sender);
84
- __classPrivateFieldGet(this, _TransactionHandler_instances, "m", _TransactionHandler_verifyTransactionNonceApply).call(this, sender, transaction);
85
- AppUtils.assert.defined(data.nonce);
86
- sender.setNonce(data.nonce);
87
- // Subtract fee
88
- this.applyFeeToSender(transaction, sender);
89
- // Native gas usage
90
- let gasUsed = 0;
91
- const isEvmCall = transaction.type === Contracts.Crypto.TransactionType.EvmCall &&
92
- transaction.typeGroup === Contracts.Crypto.TransactionTypeGroup.Core;
93
- if (!isEvmCall) {
94
- // TODO: calculate accurate amount (follow-up)
95
- gasUsed = this.gasLimits.of(transaction);
96
- }
97
- return { gasUsed };
98
- }
99
- async applyToRecipient(context, transaction) {
100
- return { gasUsed: 0 };
101
30
  }
102
31
  emitEvents(transaction) { }
103
- walletAttributes() {
104
- return [];
105
- }
106
- async throwIfCannotEnterPool(context, transaction) { }
107
32
  async verifySignatures(wallet, transaction, multiSignature) {
108
- return this.verifier.verifySignatures(transaction, multiSignature || wallet.getAttribute("multiSignature"));
33
+ return this.verifier.verifySignatures(transaction, multiSignature);
109
34
  }
110
35
  allTransactions(transactions) {
111
36
  return transactions
112
37
  .filter(({ data }) => data.type === this.getConstructor().type && data.typeGroup === this.getConstructor().typeGroup)
113
38
  .map(({ data }) => data);
114
39
  }
115
- verifyTransactionFee({ walletRepository }, transaction, sender) {
116
- if (sender.getBalance().minus(transaction.data.amount).minus(transaction.data.fee).isNegative() &&
117
- this.configuration.getHeight() > 0) {
118
- throw new Exceptions.InsufficientBalanceError();
119
- }
120
- }
121
- applyFeeToSender(transaction, sender) {
122
- const data = transaction.data;
123
- const newBalance = sender.getBalance().minus(data.fee);
124
- sender.setBalance(newBalance);
125
- }
126
- };
127
- _TransactionHandler_instances = new WeakSet();
128
- _TransactionHandler_verifyTransactionNonceApply = function _TransactionHandler_verifyTransactionNonceApply(wallet, transaction) {
129
- const nonce = transaction.data.nonce || BigNumber.ZERO;
130
- if (!wallet.getNonce().plus(1).isEqualTo(nonce)) {
131
- throw new Exceptions.UnexpectedNonceError(nonce, wallet, false);
132
- }
133
40
  };
134
41
  __decorate([
135
42
  inject(Identifiers.Application.Instance),
136
43
  __metadata("design:type", Object)
137
44
  ], TransactionHandler.prototype, "app", void 0);
45
+ __decorate([
46
+ inject(Identifiers.Evm.Gas.FeeCalculator),
47
+ __metadata("design:type", Object)
48
+ ], TransactionHandler.prototype, "gasFeeCalculator", void 0);
138
49
  __decorate([
139
50
  inject(Identifiers.Services.Log.Service),
140
51
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../source/handlers/transaction.ts"],"names":[],"mappings":"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"}
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;AAG9C,IAAe,kBAAkB,GAAjC,MAAe,kBAAkB;IAsBhC,KAAK,CAAC,MAAM,CAAC,WAAyC;QAC5D,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAS,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAClC,WAAyC,EACzC,MAA8B;QAE9B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;QAED,IACC,MAAM;aACJ,UAAU,EAAE;aACZ,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;aAC9B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aACnD,UAAU,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,EACjC,CAAC;YACF,MAAM,IAAI,UAAU,CAAC,wBAAwB,EAAE,CAAC;QACjD,CAAC;IACF,CAAC;IAEM,UAAU,CAAC,WAAyC,IAAS,CAAC;IAE9D,KAAK,CAAC,gBAAgB,CAC5B,MAA8B,EAC9B,WAA6C,EAC7C,cAAoD;QAEpD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IAES,eAAe,CAAC,YAA4C;QACrE,OAAO,YAAY;aACjB,MAAM,CACN,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACZ,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAC/F;aACA,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CAYD,CAAA;AA1EmB;IADlB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;;+CACa;AAGnC;IADlB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;;4DAC2B;AAGlD;IADlB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;;kDACW;AAGjC;IADlB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC;;yDACmB;AAG/C;IADlB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC;;oDACa;AAGhD;IADlB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;;qDACoB;AAGpC;IADlB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC;;2DACiB;AApBjD,kBAAkB;IADvC,UAAU,EAAE;GACS,kBAAkB,CA4EvC"}
@@ -1,12 +1,9 @@
1
1
  import { Contracts } from "@mainsail/contracts";
2
2
  export declare class TransactionValidator implements Contracts.Transactions.TransactionValidator {
3
- #private;
4
3
  private readonly evm;
5
4
  private readonly handlerRegistry;
6
- private readonly stateService;
7
5
  private readonly transactionFactory;
8
- initialize(): void;
9
6
  getEvm(): Contracts.Evm.Instance;
10
- validate(context: Contracts.Transactions.TransactionValidatorContext, transaction: Contracts.Crypto.Transaction): Promise<Contracts.Transactions.TransactionValidatorResult>;
7
+ validate(context: Contracts.Transactions.TransactionValidatorContext, transaction: Contracts.Crypto.Transaction): Promise<Contracts.Evm.TransactionReceipt>;
11
8
  }
12
9
  //# sourceMappingURL=transaction-validator.d.ts.map
@@ -1 +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;AAI7D,qBACa,oBAAqB,YAAW,SAAS,CAAC,YAAY,CAAC,oBAAoB;;IAGvF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAG9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;IAGrF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IAGxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAKnE,UAAU,IAAI,IAAI;IAIlB,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ;IAI1B,QAAQ,CACpB,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,2BAA2B,EAC3D,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GACvC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,0BAA0B,CAAC;CA4C7D"}
1
+ {"version":3,"file":"transaction-validator.d.ts","sourceRoot":"","sources":["../source/transaction-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAI7D,qBACa,oBAAqB,YAAW,SAAS,CAAC,YAAY,CAAC,oBAAoB;IAGvF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAG9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;IAGrF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAEnE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ;IAI1B,QAAQ,CACpB,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,2BAA2B,EAC3D,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GACvC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC;CA4B5C"}
@@ -7,64 +7,34 @@ 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
- 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_instances, _TransactionValidator_walletRepository, _TransactionValidator_updateEvmAccountInfoHost;
22
- import { inject, injectable, postConstruct, tagged } from "@mainsail/container";
10
+ import { inject, injectable, tagged } from "@mainsail/container";
23
11
  import { Contracts, Identifiers } from "@mainsail/contracts";
24
12
  import { Utils as AppUtils } from "@mainsail/kernel";
25
13
  import { strictEqual } from "assert";
26
14
  let TransactionValidator = class TransactionValidator {
27
- constructor() {
28
- _TransactionValidator_instances.add(this);
29
- _TransactionValidator_walletRepository.set(this, void 0);
30
- }
31
- initialize() {
32
- __classPrivateFieldSet(this, _TransactionValidator_walletRepository, this.stateService.createStoreClone().walletRepository, "f");
33
- }
34
15
  getEvm() {
35
16
  return this.evm;
36
17
  }
37
18
  async validate(context, transaction) {
38
19
  const deserialized = await this.transactionFactory.fromBytes(transaction.serialized);
39
20
  strictEqual(transaction.id, deserialized.id);
40
- const { commitKey, gasLimit, timestamp, generatorPublicKey } = context;
21
+ const { commitKey, gasLimit, timestamp, generatorAddress } = context;
41
22
  const handler = await this.handlerRegistry.getActivatedHandlerForData(transaction.data);
42
- const result = await handler.apply({
23
+ const receipt = await handler.apply({
43
24
  evm: {
44
25
  blockContext: {
45
26
  commitKey,
46
27
  gasLimit: BigInt(gasLimit),
47
28
  timestamp: BigInt(timestamp),
48
- validatorAddress: (await __classPrivateFieldGet(this, _TransactionValidator_walletRepository, "f").findByPublicKey(generatorPublicKey)).getAddress(),
29
+ validatorAddress: generatorAddress,
49
30
  },
50
31
  instance: this.evm,
51
32
  },
52
- walletRepository: __classPrivateFieldGet(this, _TransactionValidator_walletRepository, "f"),
53
33
  }, transaction);
54
34
  AppUtils.assert.defined(transaction.data.senderPublicKey);
55
- await __classPrivateFieldGet(this, _TransactionValidator_instances, "m", _TransactionValidator_updateEvmAccountInfoHost).call(this, commitKey, await __classPrivateFieldGet(this, _TransactionValidator_walletRepository, "f").findByPublicKey(transaction.data.senderPublicKey));
56
- return { gasUsed: result.gasUsed };
35
+ return receipt;
57
36
  }
58
37
  };
59
- _TransactionValidator_walletRepository = new WeakMap();
60
- _TransactionValidator_instances = new WeakSet();
61
- _TransactionValidator_updateEvmAccountInfoHost = async function _TransactionValidator_updateEvmAccountInfoHost(commitKey, sender) {
62
- await this.evm.updateAccountInfo({
63
- account: sender.getAddress(),
64
- commitKey,
65
- nonce: sender.getNonce().toBigInt(),
66
- });
67
- };
68
38
  __decorate([
69
39
  inject(Identifiers.Evm.Instance),
70
40
  tagged("instance", "ephemeral"),
@@ -74,20 +44,10 @@ __decorate([
74
44
  inject(Identifiers.Transaction.Handler.Registry),
75
45
  __metadata("design:type", Object)
76
46
  ], TransactionValidator.prototype, "handlerRegistry", void 0);
77
- __decorate([
78
- inject(Identifiers.State.Service),
79
- __metadata("design:type", Object)
80
- ], TransactionValidator.prototype, "stateService", void 0);
81
47
  __decorate([
82
48
  inject(Identifiers.Cryptography.Transaction.Factory),
83
49
  __metadata("design:type", Object)
84
50
  ], TransactionValidator.prototype, "transactionFactory", void 0);
85
- __decorate([
86
- postConstruct(),
87
- __metadata("design:type", Function),
88
- __metadata("design:paramtypes", []),
89
- __metadata("design:returntype", void 0)
90
- ], TransactionValidator.prototype, "initialize", null);
91
51
  TransactionValidator = __decorate([
92
52
  injectable()
93
53
  ], TransactionValidator);
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-validator.js","sourceRoot":"","sources":["../source/transaction-validator.ts"],"names":[],"mappings":"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"}
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,KAAK,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,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,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAE7C,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,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAS,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAElE,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.2",
3
+ "version": "0.0.1-evm.4",
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/container": "0.0.1-evm.2",
15
- "@mainsail/contracts": "0.0.1-evm.2",
16
- "@mainsail/crypto-transaction": "0.0.1-evm.2",
17
- "@mainsail/utils": "0.0.1-evm.2",
18
- "@mainsail/kernel": "0.0.1-evm.2"
14
+ "@mainsail/container": "0.0.1-evm.4",
15
+ "@mainsail/contracts": "0.0.1-evm.4",
16
+ "@mainsail/crypto-transaction": "0.0.1-evm.4",
17
+ "@mainsail/kernel": "0.0.1-evm.4"
19
18
  },
20
19
  "devDependencies": {
21
20
  "dayjs": "1.11.10",
22
21
  "uvu": "^0.5.6",
23
- "@mainsail/crypto-config": "0.0.1-evm.2"
22
+ "@mainsail/utils": "0.0.1-evm.4",
23
+ "@mainsail/crypto-config": "0.0.1-evm.4"
24
24
  },
25
25
  "engines": {
26
26
  "node": ">=20.x"