@mainsail/contracts 0.0.1-evm.1 → 0.0.1-evm.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/distribution/contracts/api/api.d.ts +4 -0
  2. package/distribution/contracts/api/api.d.ts.map +1 -1
  3. package/distribution/contracts/api/api.js.map +1 -1
  4. package/distribution/contracts/api-sync.d.ts +0 -1
  5. package/distribution/contracts/api-sync.d.ts.map +1 -1
  6. package/distribution/contracts/crypto/block.d.ts +2 -3
  7. package/distribution/contracts/crypto/block.d.ts.map +1 -1
  8. package/distribution/contracts/crypto/commit.d.ts +0 -1
  9. package/distribution/contracts/crypto/commit.d.ts.map +1 -1
  10. package/distribution/contracts/crypto/identities.d.ts +3 -0
  11. package/distribution/contracts/crypto/identities.d.ts.map +1 -1
  12. package/distribution/contracts/crypto/networks.d.ts +4 -4
  13. package/distribution/contracts/crypto/networks.d.ts.map +1 -1
  14. package/distribution/contracts/crypto/transactions.d.ts +27 -55
  15. package/distribution/contracts/crypto/transactions.d.ts.map +1 -1
  16. package/distribution/contracts/database.d.ts +15 -3
  17. package/distribution/contracts/database.d.ts.map +1 -1
  18. package/distribution/contracts/evm/contract-service.d.ts +23 -0
  19. package/distribution/contracts/evm/contract-service.d.ts.map +1 -0
  20. package/distribution/contracts/evm/contract-service.js +2 -0
  21. package/distribution/contracts/evm/contract-service.js.map +1 -0
  22. package/distribution/contracts/evm/evm.d.ts +66 -4
  23. package/distribution/contracts/evm/evm.d.ts.map +1 -1
  24. package/distribution/contracts/evm/evm.js +1 -2
  25. package/distribution/contracts/evm/evm.js.map +1 -1
  26. package/distribution/contracts/evm/gas-fee.d.ts +1 -1
  27. package/distribution/contracts/evm/gas-fee.d.ts.map +1 -1
  28. package/distribution/contracts/evm/index.d.ts +2 -0
  29. package/distribution/contracts/evm/index.d.ts.map +1 -1
  30. package/distribution/contracts/evm/index.js +2 -0
  31. package/distribution/contracts/evm/index.js.map +1 -1
  32. package/distribution/contracts/evm/state.d.ts +4 -0
  33. package/distribution/contracts/evm/state.d.ts.map +1 -0
  34. package/distribution/contracts/evm/state.js +2 -0
  35. package/distribution/contracts/evm/state.js.map +1 -0
  36. package/distribution/contracts/evm/worker.d.ts +6 -1
  37. package/distribution/contracts/evm/worker.d.ts.map +1 -1
  38. package/distribution/contracts/index.d.ts +1 -1
  39. package/distribution/contracts/index.d.ts.map +1 -1
  40. package/distribution/contracts/index.js +1 -1
  41. package/distribution/contracts/index.js.map +1 -1
  42. package/distribution/contracts/network-generator.d.ts +6 -7
  43. package/distribution/contracts/network-generator.d.ts.map +1 -1
  44. package/distribution/contracts/processor.d.ts +4 -8
  45. package/distribution/contracts/processor.d.ts.map +1 -1
  46. package/distribution/contracts/serializer.d.ts +1 -1
  47. package/distribution/contracts/serializer.d.ts.map +1 -1
  48. package/distribution/contracts/snapshot.d.ts +44 -0
  49. package/distribution/contracts/snapshot.d.ts.map +1 -0
  50. package/distribution/contracts/snapshot.js +2 -0
  51. package/distribution/contracts/snapshot.js.map +1 -0
  52. package/distribution/contracts/state/index.d.ts +0 -7
  53. package/distribution/contracts/state/index.d.ts.map +1 -1
  54. package/distribution/contracts/state/index.js +0 -7
  55. package/distribution/contracts/state/index.js.map +1 -1
  56. package/distribution/contracts/state/store.d.ts +3 -17
  57. package/distribution/contracts/state/store.d.ts.map +1 -1
  58. package/distribution/contracts/state/wallets.d.ts +7 -105
  59. package/distribution/contracts/state/wallets.d.ts.map +1 -1
  60. package/distribution/contracts/state/wallets.js +1 -15
  61. package/distribution/contracts/state/wallets.js.map +1 -1
  62. package/distribution/contracts/transaction-pool/client.d.ts +1 -4
  63. package/distribution/contracts/transaction-pool/client.d.ts.map +1 -1
  64. package/distribution/contracts/transaction-pool/mempool.d.ts +4 -5
  65. package/distribution/contracts/transaction-pool/mempool.d.ts.map +1 -1
  66. package/distribution/contracts/transaction-pool/query.d.ts +1 -5
  67. package/distribution/contracts/transaction-pool/query.d.ts.map +1 -1
  68. package/distribution/contracts/transaction-pool/sender-mempool.d.ts +2 -2
  69. package/distribution/contracts/transaction-pool/sender-mempool.d.ts.map +1 -1
  70. package/distribution/contracts/transaction-pool/sender-state.d.ts +3 -1
  71. package/distribution/contracts/transaction-pool/sender-state.d.ts.map +1 -1
  72. package/distribution/contracts/transaction-pool/service.d.ts +2 -2
  73. package/distribution/contracts/transaction-pool/service.d.ts.map +1 -1
  74. package/distribution/contracts/transaction-pool/worker.d.ts +3 -10
  75. package/distribution/contracts/transaction-pool/worker.d.ts.map +1 -1
  76. package/distribution/contracts/transactions.d.ts +9 -27
  77. package/distribution/contracts/transactions.d.ts.map +1 -1
  78. package/distribution/contracts/validator-set.d.ts +5 -3
  79. package/distribution/contracts/validator-set.d.ts.map +1 -1
  80. package/distribution/contracts/validator.d.ts +1 -1
  81. package/distribution/contracts/validator.d.ts.map +1 -1
  82. package/distribution/events.d.ts +2 -1
  83. package/distribution/events.d.ts.map +1 -1
  84. package/distribution/events.js +1 -0
  85. package/distribution/events.js.map +1 -1
  86. package/distribution/exceptions/crypto.d.ts +14 -6
  87. package/distribution/exceptions/crypto.d.ts.map +1 -1
  88. package/distribution/exceptions/crypto.js +18 -4
  89. package/distribution/exceptions/crypto.js.map +1 -1
  90. package/distribution/exceptions/pool.d.ts +2 -3
  91. package/distribution/exceptions/pool.d.ts.map +1 -1
  92. package/distribution/exceptions/pool.js +1 -1
  93. package/distribution/exceptions/pool.js.map +1 -1
  94. package/distribution/exceptions/processor.js +1 -1
  95. package/distribution/exceptions/processor.js.map +1 -1
  96. package/distribution/exceptions/validation.d.ts +1 -1
  97. package/distribution/exceptions/validation.d.ts.map +1 -1
  98. package/distribution/exceptions/validation.js +2 -2
  99. package/distribution/exceptions/validation.js.map +1 -1
  100. package/distribution/identifiers.d.ts +24 -35
  101. package/distribution/identifiers.d.ts.map +1 -1
  102. package/distribution/identifiers.js +25 -36
  103. package/distribution/identifiers.js.map +1 -1
  104. package/package.json +2 -2
  105. package/distribution/contracts/fees.d.ts +0 -10
  106. package/distribution/contracts/fees.d.ts.map +0 -1
  107. package/distribution/contracts/fees.js +0 -2
  108. package/distribution/contracts/fees.js.map +0 -1
  109. package/distribution/contracts/state/attributes.d.ts +0 -22
  110. package/distribution/contracts/state/attributes.d.ts.map +0 -1
  111. package/distribution/contracts/state/attributes.js +0 -9
  112. package/distribution/contracts/state/attributes.js.map +0 -1
  113. package/distribution/contracts/state/block-state.d.ts +0 -12
  114. package/distribution/contracts/state/block-state.d.ts.map +0 -1
  115. package/distribution/contracts/state/block-state.js +0 -2
  116. package/distribution/contracts/state/block-state.js.map +0 -1
  117. package/distribution/contracts/state/index-set.d.ts +0 -5
  118. package/distribution/contracts/state/index-set.d.ts.map +0 -1
  119. package/distribution/contracts/state/index-set.js +0 -2
  120. package/distribution/contracts/state/index-set.js.map +0 -1
  121. package/distribution/contracts/state/repository.d.ts +0 -26
  122. package/distribution/contracts/state/repository.d.ts.map +0 -1
  123. package/distribution/contracts/state/repository.js +0 -2
  124. package/distribution/contracts/state/repository.js.map +0 -1
  125. package/distribution/contracts/state/service.d.ts +0 -11
  126. package/distribution/contracts/state/service.d.ts.map +0 -1
  127. package/distribution/contracts/state/service.js +0 -2
  128. package/distribution/contracts/state/service.js.map +0 -1
  129. package/distribution/contracts/state/snapshots.d.ts +0 -13
  130. package/distribution/contracts/state/snapshots.d.ts.map +0 -1
  131. package/distribution/contracts/state/snapshots.js +0 -2
  132. package/distribution/contracts/state/snapshots.js.map +0 -1
  133. package/distribution/contracts/state/state-verifier.d.ts +0 -4
  134. package/distribution/contracts/state/state-verifier.d.ts.map +0 -1
  135. package/distribution/contracts/state/state-verifier.js +0 -2
  136. package/distribution/contracts/state/state-verifier.js.map +0 -1
@@ -2,6 +2,10 @@ import Hapi from "@hapi/hapi";
2
2
  import { Application } from "../kernel/application.js";
3
3
  import { Processor } from "./rpc.js";
4
4
  export type ApiServer = Hapi.Server<ServerState>;
5
+ export interface Server {
6
+ boot(): Promise<void>;
7
+ dispose(): Promise<void>;
8
+ }
5
9
  export declare enum ServerType {
6
10
  Http = "HTTP",
7
11
  Https = "HTTPS"
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../source/contracts/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEjD,oBAAY,UAAU;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;CACf;AAED,MAAM,WAAW,WAAW;IAC3B,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,GAAG,EAAE,SAAS,CAAC;CACf;AAED,MAAM,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC1B,EAAE,CAAC;AAEJ,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,QAAQ;IACxB,GAAG,CAAC,QAAQ,KAAA,GAAG,MAAM,CAAC;IACtB,SAAS,CAAC,QAAQ,KAAA,GAAG,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../source/contracts/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEjD,MAAM,WAAW,MAAM;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,oBAAY,UAAU;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;CACf;AAED,MAAM,WAAW,WAAW;IAC3B,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,GAAG,EAAE,SAAS,CAAC;CACf;AAED,MAAM,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC1B,EAAE,CAAC;AAEJ,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,QAAQ;IACxB,GAAG,CAAC,QAAQ,KAAA,GAAG,MAAM,CAAC;IACtB,SAAS,CAAC,QAAQ,KAAA,GAAG,MAAM,CAAC;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../source/contracts/api/api.ts"],"names":[],"mappings":"AAOA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACrB,2BAAa,CAAA;IACb,6BAAe,CAAA;AAChB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../source/contracts/api/api.ts"],"names":[],"mappings":"AAYA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACrB,2BAAa,CAAA;IACb,6BAAe,CAAA;AAChB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
@@ -1,6 +1,5 @@
1
1
  import { CommitHandler } from "./crypto/commit.js";
2
2
  export interface Service extends CommitHandler {
3
- prepareBootstrap(): Promise<void>;
4
3
  bootstrap(): Promise<void>;
5
4
  beforeCommit(): Promise<void>;
6
5
  getLastSyncedBlockHeight(): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"api-sync.d.ts","sourceRoot":"","sources":["../../source/contracts/api-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,OAAQ,SAAQ,aAAa;IAC7C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C"}
1
+ {"version":3,"file":"api-sync.d.ts","sourceRoot":"","sources":["../../source/contracts/api-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,OAAQ,SAAQ,aAAa;IAC7C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C"}
@@ -29,7 +29,7 @@ export interface BlockData {
29
29
  readonly reward: BigNumber;
30
30
  readonly payloadLength: number;
31
31
  readonly payloadHash: string;
32
- readonly generatorPublicKey: string;
32
+ readonly generatorAddress: string;
33
33
  readonly transactions: TransactionData[];
34
34
  }
35
35
  export interface BlockJson {
@@ -47,7 +47,7 @@ export interface BlockJson {
47
47
  readonly reward: string;
48
48
  readonly payloadLength: number;
49
49
  readonly payloadHash: string;
50
- readonly generatorPublicKey: string;
50
+ readonly generatorAddress: string;
51
51
  readonly serialized?: string;
52
52
  readonly transactions: TransactionJson[];
53
53
  }
@@ -60,7 +60,6 @@ export interface BlockFactory {
60
60
  fromData(data: BlockData): Promise<Block>;
61
61
  }
62
62
  export interface BlockSerializer {
63
- headerSize(): number;
64
63
  totalSize(block: BlockDataSerializable): number;
65
64
  serializeHeader(block: BlockDataSerializable): Promise<Buffer>;
66
65
  serializeWithTransactions(block: BlockDataSerializable): Promise<Buffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/block.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,6 @@ export interface CommitProof {
27
27
  readonly validators: boolean[];
28
28
  }
29
29
  export interface CommitSerializer {
30
- proofSize(): number;
31
30
  serializeCommitProof(proof: CommitProof): Promise<Buffer>;
32
31
  serializeCommit(commit: CommitSerializable): Promise<Buffer>;
33
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/commit.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AACD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC7B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAChC,SAAS,IAAI,MAAM,CAAC;IAEpB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1D,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,kBAAkB;IAClC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C"}
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/commit.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AACD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC7B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAChC,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1D,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,kBAAkB;IAClC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C"}
@@ -50,5 +50,8 @@ export interface Signature {
50
50
  serialize(buffer: ByteBuffer, signature: string): void;
51
51
  deserialize(buffer: ByteBuffer): Buffer;
52
52
  aggregate(signatures: Buffer[]): Promise<string>;
53
+ signRecoverable(message: Buffer, privateKey: Buffer): Promise<string>;
54
+ verifyRecoverable(signature: Buffer, message: Buffer, publicKey: Buffer): Promise<boolean>;
55
+ recoverPublicKey(message: Buffer, signature: Buffer): string;
53
56
  }
54
57
  //# sourceMappingURL=identities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/identities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/identities.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { SpecId } from "../evm/evm.js";
2
- import { Fees } from "../fees.js";
3
2
  import { CommitJson } from "./commit.js";
4
3
  export type NetworkConfig = {
5
4
  genesisBlock: CommitJson;
@@ -46,7 +45,9 @@ export type MilestoneGas = {
46
45
  maximumGasLimit: number;
47
46
  minimumGasFee: number;
48
47
  nativeFeeMultiplier: number;
49
- nativeGasLimits: Record<string, number>;
48
+ };
49
+ export type MilestoneSnapshot = {
50
+ hash?: string;
50
51
  };
51
52
  export type Milestone = {
52
53
  height: number;
@@ -56,11 +57,10 @@ export type Milestone = {
56
57
  epoch: string;
57
58
  evmSpec: SpecId;
58
59
  gas: MilestoneGas;
59
- fees: Fees;
60
- multiPaymentLimit: number;
61
60
  reward: string;
62
61
  satoshi: MilestoneSatoshi;
63
62
  timeouts: MilestoneTimeouts;
63
+ snapshot?: MilestoneSnapshot;
64
64
  vendorFieldLength: number;
65
65
  };
66
66
  export type MilestonePartial = Partial<Milestone> & {
@@ -1 +1 @@
1
- {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/networks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC3B,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,YAAY,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG;IACnD,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG;KAAG,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM;CAAE,CAAC;AAE/D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/networks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC3B,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG;IACnD,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG;KAAG,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM;CAAE,CAAC;AAE/D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CACf,CAAC"}
@@ -4,80 +4,55 @@ import type { KeyPair } from "./identities.js";
4
4
  import type { SchemaValidationResult } from "./validator.js";
5
5
  export interface Transaction {
6
6
  readonly id: string;
7
- readonly typeGroup: number;
8
- readonly type: number;
9
7
  readonly key: string;
10
8
  data: TransactionData;
11
9
  serialized: Buffer;
12
10
  assetSize(): number;
13
11
  serialize(options?: SerializeOptions): Promise<ByteBuffer>;
14
12
  deserialize(buf: ByteBuffer): Promise<void>;
15
- hasVendorField(): boolean;
16
13
  }
17
14
  export type TransactionSchema = Record<string, any>;
18
- export interface TransactionAsset {
19
- [custom: string]: any;
20
- signature?: {
21
- publicKey: string;
22
- };
23
- validatorPublicKey?: string;
24
- username?: string;
25
- votes?: string[];
26
- unvotes?: string[];
27
- multiSignatureLegacy?: MultiSignatureLegacyAsset;
28
- multiSignature?: MultiSignatureAsset;
29
- payments?: MultiPaymentItem[];
30
- evmCall?: EvmCallAsset;
31
- }
32
- export interface EvmCallAsset {
33
- payload: string;
34
- gasLimit: number;
15
+ export interface EcdsaSignature {
16
+ r: string;
17
+ s: string;
18
+ v: number;
35
19
  }
36
20
  export interface TransactionData {
37
- version: number;
38
21
  network: number;
39
- typeGroup: number;
40
- type: number;
41
- timestamp: number;
42
- nonce: BigNumber;
22
+ senderAddress: string;
43
23
  senderPublicKey: string;
44
- fee: BigNumber;
45
- amount: BigNumber;
46
- expiration?: number;
47
- recipientId?: string;
48
- asset?: TransactionAsset;
49
- vendorField?: string;
24
+ recipientAddress?: string;
25
+ value: BigNumber;
26
+ gasLimit: number;
27
+ gasPrice: number;
28
+ nonce: BigNumber;
29
+ data: string;
50
30
  id: string;
31
+ timestamp: number;
51
32
  signature?: string;
52
- signatures?: string[];
53
- blockId?: string;
54
- blockHeight?: number;
33
+ legacySecondSignature?: string;
55
34
  sequence?: number;
56
35
  gasUsed?: number;
36
+ blockId?: string;
37
+ blockHeight?: number;
57
38
  }
58
39
  export interface TransactionJson {
59
- version?: number;
60
40
  network?: number;
61
- typeGroup?: number;
62
- type: number;
63
- timestamp?: number;
64
- nonce?: string;
41
+ senderAddress: string;
65
42
  senderPublicKey: string;
66
- fee: string;
67
- amount: string;
68
- expiration?: number;
69
- recipientId?: string;
70
- asset?: TransactionAsset;
71
- vendorField?: string | undefined;
43
+ recipientAddress?: string;
44
+ value: string;
45
+ gasLimit: number;
46
+ gasPrice: number;
47
+ nonce: string;
48
+ data: string;
72
49
  id?: string;
50
+ timestamp?: number;
73
51
  signature?: string;
74
- signatures?: string[];
75
- blockId?: string;
76
52
  sequence?: number;
77
- }
78
- export interface MultiPaymentItem {
79
- amount: BigNumber;
80
- recipientId: string;
53
+ gasUsed?: number;
54
+ blockId?: string;
55
+ blockHeight?: number;
81
56
  }
82
57
  export interface MultiSignatureLegacyAsset {
83
58
  min: number;
@@ -88,10 +63,6 @@ export interface MultiSignatureAsset {
88
63
  min: number;
89
64
  publicKeys: string[];
90
65
  }
91
- export interface VoteAsset {
92
- votes: string[];
93
- unvotes: string[];
94
- }
95
66
  export interface SerializeOptions {
96
67
  excludeSignature?: boolean;
97
68
  excludeMultiSignature?: boolean;
@@ -103,6 +74,7 @@ export interface TransactionVerifier {
103
74
  verifySignatures(transaction: TransactionData, multiSignature: MultiSignatureAsset): Promise<boolean>;
104
75
  verifyHash(data: TransactionData): Promise<boolean>;
105
76
  verifySchema(data: Omit<TransactionData, "id">, strict?: boolean): Promise<SchemaValidationResult>;
77
+ verifyLegacySecondSignature(data: TransactionData, legacySecondPublicKey: string): Promise<boolean>;
106
78
  }
107
79
  export interface TransactionSigner {
108
80
  sign(transaction: TransactionData, keys: KeyPair, options?: SerializeOptions): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/transactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/transactions.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,25 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { Block } from "./crypto/block.js";
3
- import { Commit } from "./crypto/commit.js";
2
+ import { Block, BlockHeader, Commit, Transaction } from "./crypto/index.js";
3
+ export interface State {
4
+ height: number;
5
+ totalRound: number;
6
+ }
4
7
  export interface DatabaseService {
8
+ initialize(): Promise<void>;
5
9
  isEmpty(): boolean;
10
+ getState(): State;
6
11
  getCommit(height: number): Promise<Commit | undefined>;
12
+ getCommitById(id: string): Promise<Commit | undefined>;
13
+ getLastCommit(): Promise<Commit>;
14
+ hasCommitById(id: string): boolean;
7
15
  findCommitBuffers(start: number, end: number): Promise<Buffer[]>;
8
16
  readCommits(start: number, end: number): AsyncGenerator<Commit>;
17
+ getBlock(height: number): Promise<Block | undefined>;
18
+ getBlockById(id: string): Promise<Block | undefined>;
9
19
  findBlocks(start: number, end: number): Promise<Block[]>;
10
- getLastCommit(): Promise<Commit>;
20
+ getBlockHeader(height: number): Promise<BlockHeader | undefined>;
21
+ getBlockHeaderById(id: string): Promise<BlockHeader | undefined>;
22
+ getTransactionById(id: string): Promise<Transaction | undefined>;
11
23
  addCommit(block: Commit): void;
12
24
  persist(): Promise<void>;
13
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../source/contracts/database.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC/B,OAAO,IAAI,OAAO,CAAC;IAEnB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAEzD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../source/contracts/database.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5E,MAAM,WAAW,KAAK;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC;IAEnB,QAAQ,IAAI,KAAK,CAAC;IAElB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEhE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IACrD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAEzD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
@@ -0,0 +1,23 @@
1
+ import { BigNumber } from "@mainsail/utils";
2
+ import { ValidatorWallet } from "../state/wallets.js";
3
+ export interface Vote {
4
+ validatorAddress: string;
5
+ voterAddress: string;
6
+ }
7
+ export interface ValidatorRoundValidator {
8
+ readonly voteBalance: BigNumber;
9
+ readonly address: string;
10
+ }
11
+ export interface ValidatorRound {
12
+ readonly round: number;
13
+ readonly roundHeight: number;
14
+ readonly validators: ValidatorRoundValidator[];
15
+ }
16
+ export interface ConsensusContractService {
17
+ getActiveValidators(): Promise<ValidatorWallet[]>;
18
+ getAllValidators(): Promise<ValidatorWallet[]>;
19
+ getVotesCount(): Promise<number>;
20
+ getVotes(): AsyncIterable<Vote>;
21
+ getValidatorRounds(): AsyncIterable<ValidatorRound>;
22
+ }
23
+ //# sourceMappingURL=contract-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-service.d.ts","sourceRoot":"","sources":["../../../source/contracts/evm/contract-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,IAAI;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,wBAAwB;IACxC,mBAAmB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAClD,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/C,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,kBAAkB,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;CACpD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contract-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-service.js","sourceRoot":"","sources":["../../../source/contracts/evm/contract-service.ts"],"names":[],"mappings":""}
@@ -2,15 +2,30 @@
2
2
  import { CommitHandler } from "../crypto/commit.js";
3
3
  export declare enum EvmMode {
4
4
  Ephemeral = 0,
5
- Mock = 1,
6
- Persistent = 2
5
+ Persistent = 1
6
+ }
7
+ export interface GenesisInfo {
8
+ readonly account: string;
9
+ readonly deployerAccount: string;
10
+ readonly validatorContract: string;
11
+ readonly usernameContract: string;
12
+ readonly initialSupply: bigint;
7
13
  }
8
14
  export interface Instance extends CommitHandler {
15
+ prepareNextCommit(context: PrepareNextCommitContext): Promise<void>;
9
16
  process(txContext: TransactionContext): Promise<ProcessResult>;
10
17
  view(viewContext: TransactionViewContext): Promise<ViewResult>;
18
+ initializeGenesis(commit: GenesisInfo): Promise<void>;
11
19
  getAccountInfo(address: string): Promise<AccountInfo>;
12
- updateAccountInfo(context: AccountUpdateContext): Promise<void>;
13
- stateHash(currentHash: string): Promise<string>;
20
+ getAccountInfoExtended(address: string): Promise<AccountInfoExtended>;
21
+ importAccountInfo(info: AccountInfoExtended): Promise<void>;
22
+ getAccounts(offset: bigint, limit: bigint): Promise<GetAccountsResult>;
23
+ getReceipts(offset: bigint, limit: bigint): Promise<GetReceiptsResult>;
24
+ calculateActiveValidators(context: CalculateActiveValidatorsContext): Promise<void>;
25
+ updateRewardsAndVotes(context: UpdateRewardsAndVotesContext): Promise<void>;
26
+ stateHash(commitKey: CommitKey, currentHash: string): Promise<string>;
27
+ codeAt(address: string): Promise<string>;
28
+ storageAt(address: string, slot: bigint): Promise<string>;
14
29
  mode(): EvmMode;
15
30
  }
16
31
  export interface ProcessResult {
@@ -27,16 +42,38 @@ export interface AccountInfo {
27
42
  readonly nonce: bigint;
28
43
  readonly balance: bigint;
29
44
  }
45
+ export interface AccountInfoExtended extends AccountInfo {
46
+ readonly address: string;
47
+ readonly legacyAttributes: LegacyAttributes;
48
+ }
49
+ export interface LegacyAttributes {
50
+ readonly secondPublicKey?: string;
51
+ }
52
+ export interface AccountUpdate {
53
+ readonly address: string;
54
+ readonly balance: bigint;
55
+ readonly nonce: bigint;
56
+ readonly vote?: string;
57
+ readonly unvote?: string;
58
+ readonly username?: string;
59
+ readonly usernameResigned: boolean;
60
+ }
30
61
  export interface AccountUpdateContext {
31
62
  readonly account: string;
32
63
  readonly commitKey: CommitKey;
33
64
  readonly nonce: bigint;
34
65
  }
66
+ export interface PrepareNextCommitContext {
67
+ readonly commitKey: CommitKey;
68
+ }
35
69
  export interface TransactionContext {
36
70
  readonly caller: string;
37
71
  /** Omit recipient when deploying a contract */
38
72
  readonly recipient?: string;
39
73
  readonly gasLimit: bigint;
74
+ readonly value: bigint;
75
+ readonly gasPrice?: bigint;
76
+ readonly nonce: bigint;
40
77
  readonly data: Buffer;
41
78
  readonly blockContext: BlockContext;
42
79
  readonly txHash: string;
@@ -48,6 +85,15 @@ export interface TransactionViewContext {
48
85
  readonly recipient: string;
49
86
  readonly data: Buffer;
50
87
  readonly specId: SpecId;
88
+ readonly gasLimit?: bigint;
89
+ }
90
+ export interface GetAccountsResult {
91
+ readonly nextOffset?: bigint;
92
+ readonly accounts: AccountInfoExtended[];
93
+ }
94
+ export interface GetReceiptsResult {
95
+ readonly nextOffset?: bigint;
96
+ readonly receipts: TransactionReceipt[];
51
97
  }
52
98
  export interface BlockContext {
53
99
  readonly commitKey: CommitKey;
@@ -55,6 +101,20 @@ export interface BlockContext {
55
101
  readonly timestamp: bigint;
56
102
  readonly validatorAddress: string;
57
103
  }
104
+ export interface CalculateActiveValidatorsContext {
105
+ readonly commitKey: CommitKey;
106
+ readonly timestamp: bigint;
107
+ readonly validatorAddress: string;
108
+ readonly activeValidators: bigint;
109
+ readonly specId: SpecId;
110
+ }
111
+ export interface UpdateRewardsAndVotesContext {
112
+ readonly commitKey: CommitKey;
113
+ readonly timestamp: bigint;
114
+ readonly validatorAddress: string;
115
+ readonly blockReward: bigint;
116
+ readonly specId: SpecId;
117
+ }
58
118
  export interface CommitKey {
59
119
  readonly height: bigint;
60
120
  readonly round: bigint;
@@ -66,6 +126,8 @@ export interface TransactionReceipt {
66
126
  readonly deployedContractAddress?: string;
67
127
  readonly logs: any;
68
128
  readonly output?: Buffer;
129
+ readonly blockHeight?: bigint;
130
+ readonly txHash?: string;
69
131
  }
70
132
  export declare enum SpecId {
71
133
  SHANGHAI = "Shanghai",
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../source/contracts/evm/evm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../source/contracts/evm/evm.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  export var EvmMode;
2
2
  (function (EvmMode) {
3
3
  EvmMode[EvmMode["Ephemeral"] = 0] = "Ephemeral";
4
- EvmMode[EvmMode["Mock"] = 1] = "Mock";
5
- EvmMode[EvmMode["Persistent"] = 2] = "Persistent";
4
+ EvmMode[EvmMode["Persistent"] = 1] = "Persistent";
6
5
  })(EvmMode || (EvmMode = {}));
7
6
  // Supported EVM specs
8
7
  // https://github.com/ethereum/execution-specs
@@ -1 +1 @@
1
- {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../source/contracts/evm/evm.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,OAIX;AAJD,WAAY,OAAO;IAClB,+CAAS,CAAA;IACT,qCAAI,CAAA;IACJ,iDAAU,CAAA;AACX,CAAC,EAJW,OAAO,KAAP,OAAO,QAIlB;AA0ED,sBAAsB;AACtB,8CAA8C;AAC9C,MAAM,CAAN,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,+BAAqB,CAAA;IACrB,2BAAiB,CAAA;AAClB,CAAC,EAHW,MAAM,KAAN,MAAM,QAGjB"}
1
+ {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../source/contracts/evm/evm.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IAClB,+CAAS,CAAA;IACT,iDAAU,CAAA;AACX,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAoJD,sBAAsB;AACtB,8CAA8C;AAC9C,MAAM,CAAN,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,+BAAqB,CAAA;IACrB,2BAAiB,CAAA;AAClB,CAAC,EAHW,MAAM,KAAN,MAAM,QAGjB"}
@@ -2,7 +2,7 @@ import { BigNumber } from "@mainsail/utils";
2
2
  import { Transaction } from "../crypto/transactions.js";
3
3
  export interface GasFeeCalculator {
4
4
  calculate(transaction: Transaction): BigNumber;
5
- calculateConsumed(gasFee: BigNumber, gasUsed: number): BigNumber;
5
+ calculateConsumed(gasFee: number, gasUsed: number): BigNumber;
6
6
  }
7
7
  export interface GasLimits {
8
8
  of(transaction: Transaction): number;
@@ -1 +1 @@
1
- {"version":3,"file":"gas-fee.d.ts","sourceRoot":"","sources":["../../../source/contracts/evm/gas-fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAChC,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/C,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CACjE;AAED,MAAM,WAAW,SAAS;IACzB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC;CACrC"}
1
+ {"version":3,"file":"gas-fee.d.ts","sourceRoot":"","sources":["../../../source/contracts/evm/gas-fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAChC,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9D;AAED,MAAM,WAAW,SAAS;IACzB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC;CACrC"}
@@ -1,4 +1,6 @@
1
+ export * from "./contract-service.js";
1
2
  export * from "./evm.js";
2
3
  export * from "./gas-fee.js";
4
+ export * from "./state.js";
3
5
  export * from "./worker.js";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/contracts/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/contracts/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1,4 +1,6 @@
1
+ export * from "./contract-service.js";
1
2
  export * from "./evm.js";
2
3
  export * from "./gas-fee.js";
4
+ export * from "./state.js";
3
5
  export * from "./worker.js";
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/contracts/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/contracts/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export interface State {
2
+ peerCount: number;
3
+ }
4
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../source/contracts/evm/state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACrB,SAAS,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../source/contracts/evm/state.ts"],"names":[],"mappings":""}