@odatano/core 0.3.1

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 (98) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +212 -0
  3. package/cds-plugin.js +5 -0
  4. package/config/preview/cardano-node/alonzo-genesis.json +196 -0
  5. package/config/preview/cardano-node/byron-genesis.json +117 -0
  6. package/config/preview/cardano-node/config.json +118 -0
  7. package/config/preview/cardano-node/conway-genesis.json +297 -0
  8. package/config/preview/cardano-node/shelley-genesis.json +68 -0
  9. package/config/preview/cardano-node/topology.json +19 -0
  10. package/db/schema.cds +1318 -0
  11. package/package.json +125 -0
  12. package/src/index.d.ts.map +1 -0
  13. package/src/index.js +96 -0
  14. package/src/index.js.map +1 -0
  15. package/src/plugin.d.ts.map +1 -0
  16. package/src/plugin.js +92 -0
  17. package/src/plugin.js.map +1 -0
  18. package/srv/blockchain/backends/blockfrost-backend.d.ts.map +1 -0
  19. package/srv/blockchain/backends/blockfrost-backend.js +398 -0
  20. package/srv/blockchain/backends/blockfrost-backend.js.map +1 -0
  21. package/srv/blockchain/backends/cardano-backend.d.ts.map +1 -0
  22. package/srv/blockchain/backends/cardano-backend.js +12 -0
  23. package/srv/blockchain/backends/cardano-backend.js.map +1 -0
  24. package/srv/blockchain/backends/koios-backend.d.ts.map +1 -0
  25. package/srv/blockchain/backends/koios-backend.js +537 -0
  26. package/srv/blockchain/backends/koios-backend.js.map +1 -0
  27. package/srv/blockchain/backends/ogmios-backend.d.ts.map +1 -0
  28. package/srv/blockchain/backends/ogmios-backend.js +516 -0
  29. package/srv/blockchain/backends/ogmios-backend.js.map +1 -0
  30. package/srv/blockchain/cardano-client.d.ts.map +1 -0
  31. package/srv/blockchain/cardano-client.js +377 -0
  32. package/srv/blockchain/cardano-client.js.map +1 -0
  33. package/srv/blockchain/cardano-indexer.d.ts.map +1 -0
  34. package/srv/blockchain/cardano-indexer.js +542 -0
  35. package/srv/blockchain/cardano-indexer.js.map +1 -0
  36. package/srv/blockchain/cardano-tx-builder.d.ts.map +1 -0
  37. package/srv/blockchain/cardano-tx-builder.js +232 -0
  38. package/srv/blockchain/cardano-tx-builder.js.map +1 -0
  39. package/srv/blockchain/circuit-breaker.d.ts.map +1 -0
  40. package/srv/blockchain/circuit-breaker.js +110 -0
  41. package/srv/blockchain/circuit-breaker.js.map +1 -0
  42. package/srv/blockchain/signing/external-signer.d.ts.map +1 -0
  43. package/srv/blockchain/signing/external-signer.js +302 -0
  44. package/srv/blockchain/signing/external-signer.js.map +1 -0
  45. package/srv/blockchain/signing/signature-verifier.d.ts.map +1 -0
  46. package/srv/blockchain/signing/signature-verifier.js +249 -0
  47. package/srv/blockchain/signing/signature-verifier.js.map +1 -0
  48. package/srv/blockchain/transaction-building/buildooor-tx.d.ts.map +1 -0
  49. package/srv/blockchain/transaction-building/buildooor-tx.js +636 -0
  50. package/srv/blockchain/transaction-building/buildooor-tx.js.map +1 -0
  51. package/srv/blockchain/transaction-building/cardano-tx.d.ts.map +1 -0
  52. package/srv/blockchain/transaction-building/cardano-tx.js +3 -0
  53. package/srv/blockchain/transaction-building/cardano-tx.js.map +1 -0
  54. package/srv/blockchain/transaction-building/csl-tx.d.ts.map +1 -0
  55. package/srv/blockchain/transaction-building/csl-tx.js +766 -0
  56. package/srv/blockchain/transaction-building/csl-tx.js.map +1 -0
  57. package/srv/blockchain/transaction-building/tx-builder-registry.d.ts.map +1 -0
  58. package/srv/blockchain/transaction-building/tx-builder-registry.js +67 -0
  59. package/srv/blockchain/transaction-building/tx-builder-registry.js.map +1 -0
  60. package/srv/cardano-service.cds +179 -0
  61. package/srv/cardano-service.d.ts.map +1 -0
  62. package/srv/cardano-service.js +227 -0
  63. package/srv/cardano-service.js.map +1 -0
  64. package/srv/cardano-tx-service.cds +298 -0
  65. package/srv/cardano-tx-service.d.ts.map +1 -0
  66. package/srv/cardano-tx-service.js +646 -0
  67. package/srv/cardano-tx-service.js.map +1 -0
  68. package/srv/cardano-ui.cds +2949 -0
  69. package/srv/server.d.ts.map +1 -0
  70. package/srv/server.js +212 -0
  71. package/srv/server.js.map +1 -0
  72. package/srv/utils/backend-request-handler.d.ts.map +1 -0
  73. package/srv/utils/backend-request-handler.js +47 -0
  74. package/srv/utils/backend-request-handler.js.map +1 -0
  75. package/srv/utils/const.d.ts.map +1 -0
  76. package/srv/utils/const.js +86 -0
  77. package/srv/utils/const.js.map +1 -0
  78. package/srv/utils/error-codes.d.ts.map +1 -0
  79. package/srv/utils/error-codes.js +49 -0
  80. package/srv/utils/error-codes.js.map +1 -0
  81. package/srv/utils/errors.d.ts.map +1 -0
  82. package/srv/utils/errors.js +389 -0
  83. package/srv/utils/errors.js.map +1 -0
  84. package/srv/utils/mappers.d.ts.map +1 -0
  85. package/srv/utils/mappers.js +723 -0
  86. package/srv/utils/mappers.js.map +1 -0
  87. package/srv/utils/signing-helper.d.ts.map +1 -0
  88. package/srv/utils/signing-helper.js +128 -0
  89. package/srv/utils/signing-helper.js.map +1 -0
  90. package/srv/utils/tx-build-helper.d.ts.map +1 -0
  91. package/srv/utils/tx-build-helper.js +135 -0
  92. package/srv/utils/tx-build-helper.js.map +1 -0
  93. package/srv/utils/types.d.ts.map +1 -0
  94. package/srv/utils/types.js +36 -0
  95. package/srv/utils/types.js.map +1 -0
  96. package/srv/utils/validators.d.ts.map +1 -0
  97. package/srv/utils/validators.js +382 -0
  98. package/srv/utils/validators.js.map +1 -0
@@ -0,0 +1,542 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CardanoIndexer = void 0;
7
+ const cds_1 = __importDefault(require("@sap/cds"));
8
+ const CardanoODataService_1 = require("#cds-models/CardanoODataService");
9
+ const CardanoTransactionService_1 = require("#cds-models/CardanoTransactionService");
10
+ const mappers_1 = require("../utils/mappers");
11
+ const { UPSERT, INSERT, UPDATE, SELECT } = cds_1.default.ql;
12
+ const logger = cds_1.default.log('CardanoIndexer');
13
+ /**
14
+ * CardanoIndexer - Indexer for Cardano blockchain data into OData entities
15
+ *
16
+ * Provides methods to index & manage db consistency for various Cardano blockchain data (transactions, addresses, blocks, epochs, accounts, pools, dreps)
17
+ * 1. Fetches data from the configured Cardano data provider via the CardanoClient
18
+ * 2. Maps the provider data into corresponding OData entity rows
19
+ * 3. Upserts the data rows into the database via CAP transactions
20
+ * 4. Ensures referential integrity and consistency across related entities (e.g., addresses in transactions, UTxOs in addresses)
21
+ * 5. Returns the indexed entity data for further processing
22
+ *
23
+ * Each method corresponds to a specific Cardano Entity type and handles the necessary mapping and persistence
24
+ * into the corresponding OData entities defined in the CardanoODataService(M1) and CardanoTransactionService(M2) models.
25
+ */
26
+ class CardanoIndexer {
27
+ client;
28
+ txBuilder;
29
+ /**
30
+ * Create a new CardanoIndexer instance
31
+ * @param client - The CardanoClient instance for blockchain queries
32
+ * @param txBuilder - The CardanoTransactionBuilder instance for transaction building
33
+ */
34
+ constructor(client, txBuilder) {
35
+ this.client = client;
36
+ this.txBuilder = txBuilder;
37
+ logger.info('CardanoIndexer instance created');
38
+ }
39
+ /**
40
+ * Index & return a single transaction with inputs/outputs/assets/UTxOs/addresses
41
+ * All UPSERTs execute within the same CAP transaction (cds.tx), which ensures
42
+ * atomicity: either all entities are persisted or none are (automatic rollback on error).
43
+ * @param tx CAP transaction (cds.tx(req))
44
+ * @param txHash Cardano transaction hash (hex)
45
+ * @returns {Promise<CardanoTransaction>} transaction entity data
46
+ */
47
+ async indexTransaction(tx, txHash) {
48
+ // getting data from cardano data provider
49
+ const providerTx = await this.client.getTransaction(txHash);
50
+ const txRow = (0, mappers_1.mapTransaction)(providerTx);
51
+ await tx.run(UPSERT.into(CardanoODataService_1.Transactions).entries(txRow));
52
+ logger.debug(`indexTransaction: upserted transaction ${txHash}`);
53
+ if (providerTx.inputs) {
54
+ // Inputs + InputAssets
55
+ const inputRows = (0, mappers_1.mapTransactionInputs)(txHash, providerTx.inputs);
56
+ const inputAssetRows = (0, mappers_1.mapTransactionInputAssets)(txHash, providerTx.inputs);
57
+ if (inputRows.length) {
58
+ await tx.run(UPSERT.into(CardanoODataService_1.TransactionInputs).entries(inputRows));
59
+ logger.debug(`indexTransaction: upserted ${inputRows.length} transaction inputs for ${txHash}`);
60
+ }
61
+ if (inputAssetRows.length) {
62
+ await tx.run(UPSERT.into(CardanoODataService_1.TransactionInputAssets).entries(inputAssetRows));
63
+ logger.debug(`indexTransaction: upserted ${inputAssetRows.length} transaction input assets for ${txHash}`);
64
+ }
65
+ // Outputs + OutputAssets
66
+ const outputRows = (0, mappers_1.mapTransactionOutputs)(txHash, providerTx.outputs);
67
+ const outputAssetRows = (0, mappers_1.mapTransactionOutputAssets)(txHash, providerTx.outputs);
68
+ if (outputRows.length) {
69
+ await tx.run(UPSERT.into(CardanoODataService_1.TransactionOutputs).entries(outputRows));
70
+ }
71
+ if (outputAssetRows.length) {
72
+ await tx.run(UPSERT.into(CardanoODataService_1.TransactionOutputAssets).entries(outputAssetRows));
73
+ }
74
+ }
75
+ const metadataRows = (0, mappers_1.mapTransactionMetadata)(providerTx.metadata || []);
76
+ if (metadataRows.length) {
77
+ await tx.run(UPSERT.into(CardanoODataService_1.TransactionMetadata).entries(metadataRows));
78
+ }
79
+ return txRow;
80
+ }
81
+ /**
82
+ * Index & return address data with assets and UTxOs (without transactions)
83
+ * Transactions are loaded separately via indexAddressTransactions() for better performance
84
+ * @param tx CAP transaction
85
+ * @param addr bech32 address
86
+ * @return {Promise<Address>} address entity data
87
+ */
88
+ async indexAddress(tx, addr) {
89
+ const addrData = await this.client.getAddress(addr);
90
+ logger.debug(`indexAddress: provider response for address ${addr}`);
91
+ logger.debug({ addrData }, 'indexAddress: provider response');
92
+ const AddrEntity = (0, mappers_1.mapAddress)(addr, addrData, this.client.max_age_ms);
93
+ await tx.run(UPSERT.into(CardanoODataService_1.Addresses).entries(AddrEntity));
94
+ // Also insert child entities for new address
95
+ const assetEntities = (0, mappers_1.mapAddressAssets)(addr, AddrEntity.validFrom ?? new Date().toISOString(), AddrEntity.validTo ?? new Date().toISOString(), addrData.amount);
96
+ logger.debug({ assetEntities }, 'indexAddress: asset entities');
97
+ if (assetEntities.length > 0) {
98
+ await tx.run(UPSERT.into(CardanoODataService_1.AddressAssets).entries(assetEntities));
99
+ }
100
+ // UTxOs are included in getAddress response
101
+ const utxoEntities = (0, mappers_1.mapAddressUtxos)(addr, AddrEntity.validFrom ?? new Date().toISOString(), AddrEntity.validTo ?? new Date().toISOString(), addrData.utxos);
102
+ logger.debug({ utxoEntities }, 'indexAddress: utxo entities');
103
+ if (utxoEntities.length) {
104
+ await tx.run(UPSERT.into(CardanoODataService_1.AddressUTxOs).entries(utxoEntities));
105
+ }
106
+ const utxoAssetEntities = (0, mappers_1.mapAddressUtxoAssets)(addrData.utxos, AddrEntity.validFrom ?? new Date().toISOString(), AddrEntity.validTo ?? new Date().toISOString());
107
+ logger.debug({ utxoAssetEntities }, 'indexAddress: utxo asset entities');
108
+ if (utxoAssetEntities.length) {
109
+ // Remove possible duplicates before upsert
110
+ const seen = new Set();
111
+ const uniqueAssets = utxoAssetEntities.filter(asset => {
112
+ const key = `${asset.utxo_address_address}|${asset.utxo_hash}|${asset.utxo_index}|${asset.unit}`;
113
+ if (seen.has(key))
114
+ return false;
115
+ seen.add(key);
116
+ return true;
117
+ });
118
+ logger.debug(`indexAddress: ${utxoAssetEntities.length} assets, ${uniqueAssets.length} unique (removed ${utxoAssetEntities.length - uniqueAssets.length} duplicates)`);
119
+ await tx.run(UPSERT.into(CardanoODataService_1.UTxOAssets).entries(uniqueAssets));
120
+ try {
121
+ await this.indexAddressTransactions(tx, addr, 10);
122
+ }
123
+ catch (err) {
124
+ logger.error(`indexAddressTransactions failed for address ${addr}: ${err.message}`);
125
+ }
126
+ }
127
+ return AddrEntity;
128
+ }
129
+ /**
130
+ * Index & return address transactions (separate from indexAddress for lazy loading)
131
+ * @param tx CAP transaction
132
+ * @param addr bech32 address
133
+ * @param limit maximum number of transactions to fetch
134
+ * @return {Promise<AddressTransactions[]>} address transaction entities
135
+ */
136
+ async indexAddressTransactions(tx, addr, limit) {
137
+ logger.debug(`indexAddressTransactions: fetching transactions for ${addr}`);
138
+ // Fetch transactions for this address
139
+ const transactions = await this.client.getAddressTransactions(addr, limit);
140
+ logger.debug(`indexAddressTransactions: found ${transactions.length} transactions for ${addr}`);
141
+ // Index each transaction
142
+ for (const txData of transactions) {
143
+ await this.indexTransaction(tx, txData.hash);
144
+ }
145
+ // Create address-transaction mapping entries
146
+ const now = new Date().toISOString();
147
+ const validTo = new Date(Date.now() + 600000).toISOString(); // 10 min TTL
148
+ const transactionsEntities = (0, mappers_1.mapAddressTransactions)(addr, transactions, now, validTo);
149
+ logger.debug({ count: transactionsEntities.length }, 'indexAddressTransactions: transaction entities');
150
+ if (transactionsEntities.length) {
151
+ await tx.run(UPSERT.into(CardanoODataService_1.AddressTransactions).entries(transactionsEntities));
152
+ }
153
+ return transactionsEntities;
154
+ }
155
+ /**
156
+ * Index & return address signing request association
157
+ * Links an address to a signing request for address-based queries
158
+ * @param tx CAP transaction
159
+ * @param addr bech32 address
160
+ * @param signingRequestId signing request UUID
161
+ * @return {Promise<void>}
162
+ */
163
+ async indexAddressSigningRequests(tx, addr, signingRequestId) {
164
+ logger.debug(`indexAddressSigningRequests: linking address ${addr} to signing request ${signingRequestId}`);
165
+ const addressSigningRequestEntity = (0, mappers_1.mapAddressSigningRequest)(addr, signingRequestId);
166
+ await tx.run(UPSERT.into(CardanoTransactionService_1.AddressSigningRequests).entries(addressSigningRequestEntity));
167
+ logger.debug(`indexAddressSigningRequests: linked address ${addr} to signing request ${signingRequestId}`);
168
+ }
169
+ /**
170
+ * Index & return address transaction build association
171
+ * Links an address to a transaction build for address-based queries
172
+ * @param tx CAP transaction
173
+ * @param addr bech32 address
174
+ * @param buildId transaction build UUID
175
+ * @return {Promise<void>}
176
+ */
177
+ async indexAddressTransactionBuilds(tx, addr, buildId) {
178
+ logger.debug(`indexAddressTransactionBuilds: linking address ${addr} to build ${buildId}`);
179
+ const addressTransactionBuildEntity = (0, mappers_1.mapAddressTransactionBuild)(addr, buildId);
180
+ await tx.run(UPSERT.into(CardanoTransactionService_1.AddressTransactionBuilds).entries(addressTransactionBuildEntity));
181
+ logger.debug(`indexAddressTransactionBuilds: linked address ${addr} to build ${buildId}`);
182
+ }
183
+ /**
184
+ * Index & return metadata for a single transaction (Metadata)
185
+ * @param tx CAP transaction
186
+ * @param txHash transaction hash
187
+ * @param metadata raw metadata object (label -> JSONValue)
188
+ * @return {Promise<TransactionMetadata[]>} array of transaction metadata rows
189
+ */
190
+ async indexTransactionMetadata(tx, tx_hash) {
191
+ const metadata = await this.client.getTransactionMetadata(tx_hash);
192
+ const rows = (0, mappers_1.mapTransactionMetadata)(metadata);
193
+ if (rows.length) {
194
+ await tx.run(UPSERT.into(CardanoODataService_1.TransactionMetadata).entries(rows));
195
+ }
196
+ return rows;
197
+ }
198
+ /**
199
+ * Index & return the network information data
200
+ * @param tx CAP transaction object
201
+ * @returns {Promise<NetworkInformation>} network information entity data
202
+ */
203
+ async indexNetworkInformation(tx) {
204
+ const netInfo = await this.client.getNetworkInformation();
205
+ const netEntity = (0, mappers_1.mapNetworkInfo)(netInfo, this.client.max_age_ms, this.client.network);
206
+ await tx.run(UPSERT.into(CardanoODataService_1.NetworkInformation).entries(netEntity));
207
+ return netEntity;
208
+ }
209
+ /**
210
+ * Index & return the block information data
211
+ * @param tx CAP transaction object
212
+ * @param blockHash block hash (hex)
213
+ * @returns {Promise<Block>} block entity data
214
+ */
215
+ async indexBlock(tx, blockHash) {
216
+ const blockInfo = await this.client.getBlock(blockHash);
217
+ const epoch = await this.indexEpoch(tx, blockInfo.epoch);
218
+ const blockEntity = (0, mappers_1.mapBlock)(blockInfo, epoch);
219
+ await tx.run(UPSERT.into(CardanoODataService_1.Block).entries(blockEntity));
220
+ return blockEntity;
221
+ }
222
+ /**
223
+ * Index & return the epoch information data
224
+ * @param tx CAP transaction object
225
+ * @param epochNumber epoch number
226
+ * @returns {Promise<Epoch>} epoch entity data
227
+ */
228
+ async indexEpoch(tx, epochNumber) {
229
+ const epochInfo = await this.client.getEpoch(epochNumber);
230
+ const epochEntity = (0, mappers_1.mapEpoch)(epochInfo);
231
+ await tx.run(UPSERT.into(CardanoODataService_1.Epoch).entries([epochEntity]));
232
+ return epochEntity;
233
+ }
234
+ /**
235
+ * Index & return the account information data
236
+ * @param tx CAP transaction object
237
+ * @param stakeAddress stake address (bech32)
238
+ * @returns {Promise<Account>} account entity data
239
+ */
240
+ async indexAccount(tx, stakeAddress) {
241
+ const accountInfo = await this.client.getAccount(stakeAddress);
242
+ const accountEntity = (0, mappers_1.mapAccount)(accountInfo, this.client.max_age_ms);
243
+ await tx.run(UPSERT.into(CardanoODataService_1.Accounts).entries(accountEntity));
244
+ const addresses = accountInfo.addresses.map(a => a.address);
245
+ if (accountEntity.hasAddresses) {
246
+ await this._ensureAddresses(tx, addresses);
247
+ }
248
+ return accountEntity;
249
+ }
250
+ /**
251
+ * Index & return the drep information data
252
+ * @param tx CAP transaction object
253
+ * @param drepId drep id (bech32)
254
+ * @returns {Promise<Drep>} drep entity data
255
+ */
256
+ async indexDrep(tx, drepId) {
257
+ const drepInfo = await this.client.getDrep(drepId);
258
+ const drepEntity = (0, mappers_1.mapDrep)(drepInfo);
259
+ await tx.run(UPSERT.into(CardanoODataService_1.Dreps).entries(drepEntity));
260
+ return drepEntity;
261
+ }
262
+ /**
263
+ * Index & return the pool information data
264
+ * @param tx CAP transaction object
265
+ * @param poolId pool id (hex)
266
+ * @returns {Promise<Pool>} pool entity data
267
+ */
268
+ async indexPool(tx, poolId) {
269
+ const poolInfo = await this.client.getPool(poolId);
270
+ const poolEntity = (0, mappers_1.mapPool)(poolInfo);
271
+ await tx.run(UPSERT.into(CardanoODataService_1.Pools).entries(poolEntity));
272
+ return poolEntity;
273
+ }
274
+ /**
275
+ * Common method: build a transaction, persist build result with inputs/outputs/address associations.
276
+ * All four public indexBuild*Result methods delegate to this to eliminate duplication.
277
+ * @param tx CAP transaction object
278
+ * @param buildreq transaction build request data
279
+ * @param buildFn the specific builder method to call
280
+ * @returns {Promise<TransactionBuild>} transaction build entity data
281
+ */
282
+ async _indexBuildResult(tx, buildreq, buildFn) {
283
+ const protocolParams = await this.indexProtocolParameters(tx);
284
+ const txbuildResult = await buildFn(buildreq, protocolParams);
285
+ const buildResult = (0, mappers_1.mapBuildResult)(txbuildResult, this.client.max_age_ms);
286
+ await tx.run(UPSERT.into(CardanoTransactionService_1.TransactionBuild).entries(buildResult));
287
+ if (buildResult.id && txbuildResult.inputs && txbuildResult.inputs.length > 0) {
288
+ const inputRows = (0, mappers_1.mapBuildInputs)(buildResult.id, txbuildResult.inputs);
289
+ await tx.run(UPSERT.into(CardanoTransactionService_1.TransactionBuildInputs).entries(inputRows));
290
+ }
291
+ if (buildResult.id && txbuildResult.outputs && txbuildResult.outputs.length > 0) {
292
+ const outputRows = (0, mappers_1.mapBuildOutputs)(buildResult.id, txbuildResult.outputs, buildreq.changeAddress || buildreq.senderAddress);
293
+ await tx.run(UPSERT.into(CardanoTransactionService_1.TransactionBuildOutputs).entries(outputRows));
294
+ }
295
+ if (buildResult.id && buildreq.senderAddress) {
296
+ await this.indexAddressTransactionBuilds(tx, buildreq.senderAddress, buildResult.id);
297
+ }
298
+ return buildResult;
299
+ }
300
+ async indexSimpleBuildResult(tx, buildreq) {
301
+ return this._indexBuildResult(tx, buildreq, (req, params) => this.txBuilder.buildSimpleAdaTransaction(req, params));
302
+ }
303
+ async indexMetadataBuildResult(tx, buildreq) {
304
+ return this._indexBuildResult(tx, buildreq, (req, params) => this.txBuilder.buildTransactionWithMetadata(req, params));
305
+ }
306
+ async indexMultiAssetBuildResult(tx, buildreq) {
307
+ return this._indexBuildResult(tx, buildreq, (req, params) => this.txBuilder.buildMultiAssetTransaction(req, params));
308
+ }
309
+ async indexMintBuildResult(tx, buildreq) {
310
+ return this._indexBuildResult(tx, buildreq, (req, params) => this.txBuilder.buildMintTransaction(req, params));
311
+ }
312
+ async indexPlutusSpendBuildResult(tx, buildreq) {
313
+ return this._indexBuildResult(tx, buildreq, (req, params) => this.txBuilder.buildPlutusSpendTransaction(req, params));
314
+ }
315
+ /**
316
+ * Index & return the protocol parameters data
317
+ * @param tx CAP transaction object
318
+ * @returns {Promise<LedgerProtocolParameter>} protocol parameters entity data
319
+ */
320
+ async indexProtocolParameters(tx) {
321
+ // first, check if we have recent protocol parameters
322
+ const existing = await tx.run(SELECT.one.from(CardanoODataService_1.LedgerProtocolParameter));
323
+ if (existing)
324
+ return existing;
325
+ // otherwise, fetch new protocol parameters from provider
326
+ const protocolParamsInfo = await this.client.getProtocolParameters();
327
+ // map to protocol parameter row
328
+ const protocolParams = (0, mappers_1.mapProtocolParameters)(protocolParamsInfo);
329
+ // store in DB for future use
330
+ await tx.run(UPSERT.into(CardanoODataService_1.LedgerProtocolParameter).entries(protocolParams));
331
+ return protocolParams;
332
+ }
333
+ /**
334
+ * Persist a transaction submission with optional build association
335
+ * Handles: TransactionSubmission insert, optional Build status update
336
+ * @param tx CAP transaction object
337
+ * @param params submission parameters
338
+ * @returns {Promise<TransactionSubmission>} persisted transaction submission entity
339
+ */
340
+ async persistTransactionSubmission(tx, params) {
341
+ const { signedTxCbor, txHash, buildId } = params;
342
+ // Map submission data
343
+ const indexSubmission = (0, mappers_1.mapTransactionSubmission)(signedTxCbor, txHash);
344
+ // Create submission record (status: 'pending' — updated to 'submitted' after blockchain confirms)
345
+ const submissionRecord = {
346
+ ...indexSubmission,
347
+ build_id: buildId || null,
348
+ backendResponse: 'Submitted successfully',
349
+ status: 'pending',
350
+ };
351
+ // Persist submission
352
+ await tx.run(INSERT.into(CardanoTransactionService_1.TransactionSubmissions).entries(submissionRecord));
353
+ logger.debug({ submissionId: submissionRecord.id, txHash }, 'Persisted submission record');
354
+ // Update build status if buildId provided
355
+ if (buildId) {
356
+ await tx.run(UPDATE.entity(CardanoTransactionService_1.TransactionBuilds)
357
+ .set({ wasSubmitted: true })
358
+ .where({ id: buildId }));
359
+ logger.debug({ buildId }, 'Updated build wasSubmitted flag');
360
+ }
361
+ return submissionRecord;
362
+ }
363
+ /**
364
+ * Update the status of a transaction submission
365
+ * Used for the two-phase submit flow: pending → submitted (or failed)
366
+ * @param tx CAP transaction object
367
+ * @param submissionId the submission to update
368
+ * @param status new status value
369
+ * @param errorMessage optional error message for failed status
370
+ */
371
+ async updateSubmissionStatus(tx, submissionId, status, errorMessage) {
372
+ const updateData = { status };
373
+ if (errorMessage) {
374
+ updateData.errorMessage = errorMessage;
375
+ }
376
+ await tx.run(UPDATE.entity(CardanoTransactionService_1.TransactionSubmissions)
377
+ .set(updateData)
378
+ .where({ id: submissionId }));
379
+ logger.debug({ submissionId, status }, 'Updated submission status');
380
+ }
381
+ /**
382
+ * Persist a new signing request
383
+ * @param tx CAP transaction object
384
+ * @param params signing request parameters from external signer module
385
+ * @returns persisted signing request record
386
+ */
387
+ async persistSigningRequest(tx, params) {
388
+ const { buildId, signingPayload } = params;
389
+ // Create signing request record
390
+ const signingRequestRecord = {
391
+ id: signingPayload.signingRequestId,
392
+ build_id: buildId,
393
+ txBodyHash: signingPayload.txBodyHash,
394
+ unsignedTxCbor: signingPayload.unsignedTxCbor,
395
+ network: signingPayload.network,
396
+ status: 'pending',
397
+ createdAt: signingPayload.createdAt,
398
+ expiresAt: signingPayload.expiresAt,
399
+ cardanoCliCommand: signingPayload.signingInstructions.cardanoCliCommand,
400
+ cip30TxCbor: signingPayload.signingInstructions.cip30SigningRequest?.txCbor,
401
+ };
402
+ // Persist to database
403
+ await tx.run(INSERT.into(CardanoTransactionService_1.SigningRequests).entries(signingRequestRecord));
404
+ logger.debug({ signingRequestId: signingRequestRecord.id, buildId }, 'Persisted signing request');
405
+ // Index address-signing request association
406
+ const build = await tx.run(SELECT.one.from(CardanoTransactionService_1.TransactionBuilds).where({ id: buildId }));
407
+ if (build?.senderAddress) {
408
+ await this.indexAddressSigningRequests(tx, build.senderAddress, signingRequestRecord.id);
409
+ }
410
+ return signingRequestRecord;
411
+ }
412
+ /**
413
+ * Persist a signature verification with signing request status update
414
+ * Handles: SignatureVerification insert, SigningRequest status update
415
+ * @param tx CAP transaction object
416
+ * @param params verification parameters
417
+ * @returns persisted signature verification record
418
+ */
419
+ async persistSignatureVerification(tx, params) {
420
+ const { signingRequestId, signedTxCbor, verificationResult, signerType, signerInfo } = params;
421
+ // Create verification record
422
+ const verificationRecord = {
423
+ id: cds_1.default.utils.uuid(),
424
+ signingRequest_id: signingRequestId,
425
+ signedTxCbor: signedTxCbor,
426
+ isValid: verificationResult.isValid,
427
+ txBodyHash: verificationResult.txBodyHash,
428
+ witnessCount: verificationResult.witnessCount,
429
+ signerKeyHashes: JSON.stringify(verificationResult.signerKeyHashes),
430
+ errorMessage: verificationResult.errorMessage || null,
431
+ warnings: JSON.stringify(verificationResult.warnings),
432
+ verifiedAt: new Date().toISOString(),
433
+ };
434
+ // Persist verification
435
+ await tx.run(INSERT.into(CardanoTransactionService_1.SignatureVerifications).entries(verificationRecord));
436
+ logger.debug({ verificationId: verificationRecord.id }, 'Persisted signature verification record');
437
+ // Update signing request status
438
+ const newStatus = verificationResult.isValid ? 'verified' : 'failed';
439
+ await tx.run(UPDATE.entity(CardanoTransactionService_1.SigningRequests)
440
+ .set({
441
+ status: newStatus,
442
+ signerType: signerType || 'custom',
443
+ signerInfo: signerInfo || null,
444
+ signedAt: verificationResult.isValid ? new Date().toISOString() : null,
445
+ errorMessage: verificationResult.isValid ? null : verificationResult.errorMessage,
446
+ })
447
+ .where({ id: signingRequestId }));
448
+ logger.debug({ signingRequestId, newStatus }, 'Updated signing request status');
449
+ return verificationRecord;
450
+ }
451
+ /**
452
+ * Index a verified transaction submission with all related records
453
+ * Handles persistence of: SignatureVerification, TransactionSubmission, SigningRequest update, Build update
454
+ * @param tx CAP transaction object
455
+ * @param params submission parameters
456
+ * @returns {Promise<TransactionSubmission>} transaction submission entity data
457
+ */
458
+ async indexVerifiedTransactionSubmission(tx, params) {
459
+ const { signingRequestId, buildId, fullSignedTxCbor, txHash, verificationResult, signerType, signerInfo } = params;
460
+ // Step 1: Create and persist verification record
461
+ const verificationRecord = {
462
+ id: cds_1.default.utils.uuid(),
463
+ signingRequest_id: signingRequestId,
464
+ signedTxCbor: fullSignedTxCbor,
465
+ isValid: true,
466
+ txBodyHash: verificationResult.txBodyHash,
467
+ witnessCount: verificationResult.witnessCount,
468
+ signerKeyHashes: JSON.stringify(verificationResult.signerKeyHashes),
469
+ errorMessage: null,
470
+ warnings: JSON.stringify(verificationResult.warnings),
471
+ verifiedAt: new Date().toISOString(),
472
+ };
473
+ await tx.run(INSERT.into(CardanoTransactionService_1.SignatureVerifications).entries(verificationRecord));
474
+ logger.debug({ verificationId: verificationRecord.id }, 'Persisted signature verification record');
475
+ // Step 2: Create and persist submission record
476
+ const indexSubmission = (0, mappers_1.mapTransactionSubmission)(fullSignedTxCbor, txHash);
477
+ const submissionRecord = {
478
+ ...indexSubmission,
479
+ build_id: buildId,
480
+ backendResponse: `Submitted successfully (verified: ${verificationResult.witnessCount} witness(es))`,
481
+ status: 'submitted',
482
+ };
483
+ await tx.run(INSERT.into(CardanoTransactionService_1.TransactionSubmissions).entries(submissionRecord));
484
+ logger.debug({ submissionId: submissionRecord.id }, 'Persisted submission record');
485
+ // Step 3: Update signing request metadata (status is set by @flow.status @to: #submitted)
486
+ const now = new Date().toISOString();
487
+ await tx.run(UPDATE.entity(CardanoTransactionService_1.SigningRequests)
488
+ .set({
489
+ signerType: signerType || 'custom',
490
+ signerInfo: signerInfo || null,
491
+ signedAt: now,
492
+ submittedAt: now,
493
+ submission_id: submissionRecord.id,
494
+ })
495
+ .where({ id: signingRequestId }));
496
+ logger.debug({ signingRequestId }, 'Updated signing request metadata (status managed by @flow.status)');
497
+ // Step 4: Update build status
498
+ await tx.run(UPDATE.entity(CardanoTransactionService_1.TransactionBuilds)
499
+ .set({ wasSubmitted: true })
500
+ .where({ id: buildId }));
501
+ logger.debug({ buildId }, 'Updated build wasSubmitted flag');
502
+ return submissionRecord;
503
+ }
504
+ /**
505
+ * Index & return the latest epoch information data
506
+ * @param tx CAP transaction object
507
+ * @returns {Promise<Epoch>} epoch entity data
508
+ */
509
+ async indexLatestEpoch(tx) {
510
+ const epochInfo = await this.client.getLatestEpoch();
511
+ const epochEntity = (0, mappers_1.mapEpoch)(epochInfo);
512
+ await tx.run(UPSERT.into(CardanoODataService_1.Epoch).entries([epochEntity]));
513
+ return epochEntity;
514
+ }
515
+ /**
516
+ * Index & return the latest block information data
517
+ * @param tx CAP transaction object
518
+ * @returns {Promise<Block>} block entity data
519
+ */
520
+ async indexLatestBlock(tx) {
521
+ const blockInfo = await this.client.getLatestBlock();
522
+ const epoch = await this.indexEpoch(tx, blockInfo.epoch);
523
+ const blockEntity = (0, mappers_1.mapBlock)(blockInfo, epoch);
524
+ await tx.run(UPSERT.into(CardanoODataService_1.Block).entries(blockEntity));
525
+ return blockEntity;
526
+ }
527
+ //-----------------------------------------------------------------------------
528
+ // Private Helpers
529
+ //-----------------------------------------------------------------------------
530
+ /**
531
+ * Index multiple addresses with assets
532
+ * @param tx CAP transaction object
533
+ * @param bech32List array of bech32 addresses
534
+ */
535
+ async _ensureAddresses(tx, bech32List) {
536
+ for (const bech32 of bech32List) {
537
+ await this.indexAddress(tx, bech32);
538
+ }
539
+ }
540
+ }
541
+ exports.CardanoIndexer = CardanoIndexer;
542
+ //# sourceMappingURL=cardano-indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardano-indexer.js","sourceRoot":"","sources":["cardano-indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardano-tx-builder.d.ts","sourceRoot":"","sources":["cardano-tx-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAiE,aAAa,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE7J,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAI1E;;;GAGG;AACH,qBAAa,yBAAyB;IAClC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;gBACS,MAAM,EAAE,aAAa;IAKjC;;;OAGG;IACG,IAAI,CAAC,cAAc,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE;;;;OAIG;YACW,iBAAiB;IAU/B;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAK3C;;;;;OAKG;IACG,yBAAyB,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC;IAgBnH,4BAA4B,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC;IAe5H;;;;;OAKG;IACG,0BAA0B,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC;IAqB1H;;;;;OAKG;IACG,oBAAoB,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC;IAuCpH;;;;;OAKG;IACG,2BAA2B,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC;IA6D3H;;;;OAIG;YACW,qBAAqB;CAMtC"}