@cardano-sdk/cardano-services 0.30.0 → 0.31.0

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 (39) hide show
  1. package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.d.ts +5 -1
  2. package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.d.ts.map +1 -1
  3. package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.js +10 -8
  4. package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.js.map +1 -1
  5. package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.d.ts +1 -1
  6. package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.d.ts.map +1 -1
  7. package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.js +26 -18
  8. package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.js.map +1 -1
  9. package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.d.ts +1 -1
  10. package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.d.ts.map +1 -1
  11. package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.js +6 -3
  12. package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.js.map +1 -1
  13. package/dist/cjs/ChainHistory/DbSyncChainHistory/types.d.ts +3 -2
  14. package/dist/cjs/ChainHistory/DbSyncChainHistory/types.d.ts.map +1 -1
  15. package/dist/cjs/ChainHistory/openApi.json +1 -8
  16. package/dist/cjs/Program/programs/providerServer.d.ts.map +1 -1
  17. package/dist/cjs/Program/programs/providerServer.js +10 -13
  18. package/dist/cjs/Program/programs/providerServer.js.map +1 -1
  19. package/dist/cjs/Utxo/DbSyncUtxoProvider/mappers.d.ts.map +1 -1
  20. package/dist/cjs/Utxo/DbSyncUtxoProvider/mappers.js +1 -1
  21. package/dist/cjs/Utxo/DbSyncUtxoProvider/mappers.js.map +1 -1
  22. package/dist/cjs/WsServer/db.d.ts.map +1 -1
  23. package/dist/cjs/WsServer/db.js +3 -2
  24. package/dist/cjs/WsServer/db.js.map +1 -1
  25. package/dist/cjs/WsServer/requests.d.ts +12 -0
  26. package/dist/cjs/WsServer/requests.d.ts.map +1 -1
  27. package/dist/cjs/WsServer/requests.js +67 -1
  28. package/dist/cjs/WsServer/requests.js.map +1 -1
  29. package/dist/cjs/WsServer/server.d.ts +10 -2
  30. package/dist/cjs/WsServer/server.d.ts.map +1 -1
  31. package/dist/cjs/WsServer/server.js +174 -45
  32. package/dist/cjs/WsServer/server.js.map +1 -1
  33. package/dist/cjs/WsServer/transactions.d.ts +22 -0
  34. package/dist/cjs/WsServer/transactions.d.ts.map +1 -0
  35. package/dist/cjs/WsServer/transactions.js +508 -0
  36. package/dist/cjs/WsServer/transactions.js.map +1 -0
  37. package/dist/cjs/original-package.json +9 -9
  38. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +9 -9
@@ -0,0 +1,22 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { Hash28ByteBase16 } from '@cardano-sdk/crypto';
3
+ import { Pool } from 'pg';
4
+ import { VoterRole } from '../ChainHistory/DbSyncChainHistory/types';
5
+ interface VoteModel {
6
+ role: VoterRole;
7
+ cVoter: Hash28ByteBase16;
8
+ cScript: boolean;
9
+ dVoter: Hash28ByteBase16;
10
+ dScript: boolean;
11
+ pVoter: Hash28ByteBase16;
12
+ vote: Cardano.Vote;
13
+ index: number;
14
+ tx: Cardano.TransactionId;
15
+ url: string;
16
+ hash: string;
17
+ }
18
+ export declare const mapVoter: ({ role, cVoter, cScript, dVoter, dScript, pVoter }: VoteModel) => Cardano.Voter;
19
+ export declare const transactionsByIds: (ids: string[], db: Pool) => Promise<Cardano.HydratedTx[]>;
20
+ export declare const partialTransactionsByIds: (ids: string[], db: Pool) => Promise<Cardano.HydratedTx[]>;
21
+ export {};
22
+ //# sourceMappingURL=transactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../src/WsServer/transactions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAsB,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAA4C,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAsCrE,UAAU,SAAS;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AA8hBD,eAAO,MAAM,QAAQ,uDAAwD,SAAS,KAAG,QAAQ,KA8BhG,CAAC;AA0FF,eAAO,MAAM,iBAAiB,QAAe,MAAM,EAAE,MAAM,IAAI,kCAI9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAe,MAAM,EAAE,MAAM,IAAI,kCA2BrE,CAAC"}
@@ -0,0 +1,508 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.partialTransactionsByIds = exports.transactionsByIds = exports.mapVoter = void 0;
4
+ const core_1 = require("@cardano-sdk/core");
5
+ const ChainHistory_1 = require("../ChainHistory");
6
+ const mappers_1 = require("../ChainHistory/DbSyncChainHistory/mappers");
7
+ const redeemerPurposeMap = {
8
+ cert: core_1.Cardano.RedeemerPurpose.certificate,
9
+ mint: core_1.Cardano.RedeemerPurpose.mint,
10
+ propose: core_1.Cardano.RedeemerPurpose.propose,
11
+ reward: core_1.Cardano.RedeemerPurpose.withdrawal,
12
+ spend: core_1.Cardano.RedeemerPurpose.spend,
13
+ vote: core_1.Cardano.RedeemerPurpose.vote
14
+ };
15
+ class TQB {
16
+ constructor(query) {
17
+ this.query = query;
18
+ }
19
+ indent() {
20
+ return new TQB(this.query
21
+ .split('\n')
22
+ .map((line) => ` ${line}`)
23
+ .join('\n'));
24
+ }
25
+ nest(attribute, element, joins, order) {
26
+ const leftJoins = joins.map((join) => ` LEFT JOIN ${join}`).join('');
27
+ const orderBy = order ? ` ORDER BY ${order}` : '';
28
+ return new TQB(`\
29
+ SELECT tid, JSONB_SET(JSONB_AGG(tx)->0, '{${attribute}}', JSONB_AGG(${element}${orderBy})) AS tx FROM (
30
+ ${this.indent().query}
31
+ ) t${leftJoins} GROUP BY tid`);
32
+ }
33
+ }
34
+ const innerQuery = (collateral) => `\
35
+ SELECT tx.id AS tid, JSON_BUILD_OBJECT(
36
+ 'id', ENCODE((ARRAY_AGG(tx.hash))[1], 'hex'),
37
+ 'index', (ARRAY_AGG(block_index))[1],
38
+ 'size', (ARRAY_AGG(tx.size))[1],
39
+ 'fee', (ARRAY_AGG(fee))[1],
40
+ 'before', (ARRAY_AGG(invalid_before))[1],
41
+ 'hereafter', (ARRAY_AGG(invalid_hereafter))[1],
42
+ 'valid', (ARRAY_AGG(valid_contract))[1],
43
+ 'block', (ARRAY_AGG(block_no))[1],
44
+ 'hash', ENCODE((ARRAY_AGG(b.hash))[1], 'hex'),
45
+ 'slot', (ARRAY_AGG(slot_no))[1]${collateral
46
+ ?
47
+ `,
48
+ 'collateral', JSONB_BUILD_OBJECT(
49
+ 'address', (ARRAY_AGG(address))[1],
50
+ 'value', (ARRAY_AGG(value))[1],
51
+ 'hash', ENCODE((ARRAY_AGG(data_hash))[1], 'hex'),
52
+ 'assets', JSONB_BUILD_ARRAY(JSONB_BUILD_ARRAY(NULL)),
53
+ 'script', CASE WHEN (ARRAY_AGG(bytes))[1] IS NULL THEN NULL ELSE JSONB_BUILD_OBJECT(
54
+ '__type', 'plutus',
55
+ 'bytes', ENCODE((ARRAY_AGG(bytes))[1], 'hex'),
56
+ 'version', CASE WHEN (ARRAY_AGG(type))[1] = 'plutusV1' THEN 0 WHEN (ARRAY_AGG(type))[1] = 'plutusV2' THEN 1 ELSE 2 END
57
+ ) END
58
+ )`
59
+ : ''}
60
+ ) AS tx
61
+ FROM tx JOIN block b ON tx.block_id = b.id${collateral
62
+ ? ' LEFT JOIN collateral_tx_out ON tx_id = tx.id LEFT JOIN script s ON s.id = reference_script_id AND s.bytes IS NOT NULL'
63
+ : ''} WHERE tx.id = ANY($1) GROUP BY tx.id`;
64
+ const tqb = new TQB(innerQuery(true))
65
+ .nest('actions', `\
66
+ JSONB_BUILD_OBJECT(
67
+ 'deposit', deposit::TEXT,
68
+ 'description', description,
69
+ 'hash', ENCODE(data_hash, 'hex'),
70
+ 'url', url,
71
+ 'view', view
72
+ )`, [
73
+ 'gov_action_proposal g ON tx_id = tid',
74
+ 'voting_anchor v ON voting_anchor_id = v.id',
75
+ 'stake_address s ON return_address = s.id'
76
+ ], 'g.id')
77
+ .nest('commRet', "JSONB_BUILD_ARRAY(cert_index, ENCODE(raw, 'hex'), has_script, url, ENCODE(data_hash, 'hex'))", [
78
+ 'committee_de_registration ON tx_id = tid',
79
+ 'committee_hash ON cold_key_id = committee_hash.id',
80
+ 'voting_anchor ON voting_anchor.id = voting_anchor_id'
81
+ ])
82
+ .nest('commReg', "JSONB_BUILD_ARRAY(cert_index, ENCODE(c1.raw, 'hex'), c1.has_script, ENCODE(c2.raw, 'hex'), c2.has_script)", [
83
+ 'committee_registration ON tx_id = tid',
84
+ 'committee_hash AS c1 ON cold_key_id = c1.id',
85
+ 'committee_hash AS c2 ON hot_key_id = c2.id'
86
+ ])
87
+ .nest('spRetire', 'JSONB_BUILD_ARRAY(cert_index, retiring_epoch, view)', [
88
+ 'pool_retire ON announced_tx_id = tid',
89
+ 'pool_hash p ON p.id = hash_id'
90
+ ])
91
+ .nest('spReg', `\
92
+ JSONB_BUILD_ARRAY(
93
+ cert_index,
94
+ p.view,
95
+ CASE WHEN deposit IS NULL THEN 0 ELSE deposit::INTEGER END,
96
+ s.view,
97
+ pledge,
98
+ fixed_cost,
99
+ margin,
100
+ ENCODE(vrf_key_hash, 'hex')
101
+ )`, [
102
+ 'pool_update ON registered_tx_id = tid',
103
+ 'pool_hash p ON p.id = hash_id',
104
+ 'stake_address s ON s.id = reward_addr_id'
105
+ ])
106
+ .nest('deRep', "JSONB_BUILD_ARRAY(deposit::TEXT, cert_index, CASE WHEN has_script THEN 1 ELSE 0 END, ENCODE(raw, 'hex'), url, ENCODE(data_hash, 'hex'))", [
107
+ 'drep_registration ON tx_id = tid',
108
+ 'drep_hash ON drep_hash.id = drep_hash_id',
109
+ 'voting_anchor ON voting_anchor.id = voting_anchor_id'
110
+ ])
111
+ .nest('votes', `\
112
+ JSONB_BUILD_OBJECT(
113
+ 'role', voter_role,
114
+ 'cVoter', ENCODE(c.raw, 'hex'),
115
+ 'cScript', c.has_script,
116
+ 'dVoter', ENCODE(d.raw, 'hex'),
117
+ 'dScript', d.has_script,
118
+ 'pVoter', ENCODE(p.hash_raw, 'hex'),
119
+ 'vote', CASE WHEN vote = 'No' THEN 0 WHEN vote = 'Yes' THEN 1 WHEN vote = 'Abstain' THEN 2 END,
120
+ 'index', g.index::INTEGER,
121
+ 'tx', ENCODE(hash, 'hex'),
122
+ 'url', a.url,
123
+ 'hash', ENCODE(a.data_hash, 'hex')
124
+ )`, [
125
+ 'voting_procedure v ON v.tx_id = tid',
126
+ 'gov_action_proposal g ON gov_action_proposal_id = g.id',
127
+ 'tx ON g.tx_id = tx.id',
128
+ 'drep_hash d ON drep_voter = d.id',
129
+ 'pool_hash p ON pool_voter = p.id',
130
+ 'voting_anchor a ON v.voting_anchor_id = a.id',
131
+ 'committee_hash c ON c.id = committee_voter'
132
+ ], 'v.index')
133
+ .nest('vDele', "JSONB_BUILD_ARRAY(cert_index, CASE WHEN has_script THEN 1 ELSE 0 END, ENCODE(raw, 'hex'), drep_hash.view, stake_address.view)", [
134
+ 'delegation_vote ON tx_id = tid',
135
+ 'drep_hash ON drep_hash.id = drep_hash_id',
136
+ 'stake_address ON stake_address.id = addr_id'
137
+ ])
138
+ .nest('unReg', `\
139
+ JSONB_BUILD_ARRAY(cert_index, (
140
+ SELECT sr.deposit FROM stake_registration AS sr
141
+ WHERE sr.addr_id = sd.addr_id AND sr.tx_id < sd.tx_id
142
+ ORDER BY sr.tx_id DESC LIMIT 1
143
+ ), view)`, ['stake_deregistration sd ON tx_id = tid', 'stake_address ON stake_address.id = addr_id'])
144
+ .nest('reg', 'JSONB_BUILD_ARRAY(cert_index, deposit, view)', [
145
+ 'stake_registration ON tx_id = tid',
146
+ 'stake_address ON stake_address.id = addr_id'
147
+ ])
148
+ .nest('sDele', 'JSONB_BUILD_ARRAY(cert_index, addr.view, pool.view)', [
149
+ 'delegation ON tx_id = tid',
150
+ 'pool_hash AS pool ON pool.id = pool_hash_id',
151
+ 'stake_address AS addr ON addr.id = addr_id'
152
+ ])
153
+ .nest('mint', "JSONB_BUILD_ARRAY(ENCODE(policy || name, 'hex'), quantity::TEXT)", ['ma_tx_mint ON tx_id = tid', 'multi_asset ON ident = multi_asset.id'], 'ma_tx_mint.id')
154
+ .nest('withdrawals', "JSONB_BUILD_OBJECT('quantity', amount::TEXT, 'stakeAddress', view)", ['withdrawal ON tx_id = tid', 'stake_address ON stake_address.id = addr_id'], 'withdrawal.id')
155
+ .nest('redeemers', "JSONB_BUILD_OBJECT('index', index, 'purpose', purpose, 'mem', unit_mem, 'steps', unit_steps)", ['redeemer ON tx_id = tid'], 'id')
156
+ .nest('collaterals', "JSONB_BUILD_OBJECT('address', address, 'txId', ENCODE(hash, 'hex'), 'index', index)", [
157
+ 'collateral_tx_in c ON tx_in_id = tid',
158
+ 'tx_out ON tx_out_id = tx_id AND tx_out_index = index',
159
+ 'tx ON tx_id = tx.id'
160
+ ], 'c.id')
161
+ .nest('metadata', "JSONB_BUILD_ARRAY(key::TEXT, ENCODE(bytes, 'hex'))", ['tx_metadata ON tx_metadata.tx_id = tid'], 'id');
162
+ const buildQuery = (qb) => `\
163
+ SELECT tid, JSONB_SET(JSONB_AGG(tx)->0, '{outputs}', JSONB_AGG(out ORDER BY oid)) AS tx FROM (
164
+ SELECT tid, JSONB_AGG(tx)->0 AS tx, o.id AS oid, JSONB_BUILD_OBJECT(
165
+ 'address', o.address,
166
+ 'value', o.value::TEXT,
167
+ 'datum', ENCODE((ARRAY_AGG(d.bytes))[1], 'hex'),
168
+ 'hash', ENCODE(o.data_hash, 'hex'),
169
+ 'assets', JSONB_AGG(JSONB_BUILD_ARRAY(ENCODE(policy || name, 'hex'), quantity::TEXT) ORDER BY m.id),
170
+ 'script', CASE WHEN (ARRAY_AGG(s.json))[1] IS NOT NULL THEN JSONB_BUILD_OBJECT(
171
+ '__type', '_native',
172
+ 'json', (ARRAY_AGG(s.json))[1]
173
+ ) WHEN (ARRAY_AGG(s.bytes))[1] IS NOT NULL THEN JSONB_BUILD_OBJECT(
174
+ '__type', 'plutus',
175
+ 'bytes', ENCODE((ARRAY_AGG(s.bytes))[1], 'hex'),
176
+ 'version', CASE WHEN (ARRAY_AGG(type))[1] = 'plutusV1' THEN 0 WHEN (ARRAY_AGG(type))[1] = 'plutusV2' THEN 1 ELSE 2 END
177
+ ) ELSE NULL END
178
+ ) AS out FROM (
179
+ ${qb
180
+ .nest('inputs', "JSONB_BUILD_OBJECT('address', address, 'txId', ENCODE(hash, 'hex'), 'index', index)", ['tx_in ON tx_in_id = tid', 'tx_out ON tx_out_id = tx_id AND tx_out_index = index', 'tx ON tx_id = tx.id'], 'tx_in.id')
181
+ .indent()
182
+ .indent().query}
183
+ ) t LEFT JOIN tx_out o ON o.tx_id = tid LEFT JOIN ma_tx_out m ON m.tx_out_id = o.id LEFT JOIN multi_asset a ON m.ident = a.id
184
+ LEFT JOIN script s ON s.id = reference_script_id LEFT JOIN datum d ON d.id = inline_datum_id GROUP BY tid, o.id
185
+ ) t GROUP BY tid`;
186
+ const getTransactions = buildQuery(tqb);
187
+ const getUtxos = buildQuery(new TQB(innerQuery(false)));
188
+ const mapActions = (actions) => actions[0].description
189
+ ? actions.map(({ deposit, description, hash, url, view }) => ({
190
+ anchor: (0, mappers_1.mapAnchor)(url, hash),
191
+ deposit: BigInt(deposit),
192
+ governanceAction: (0, ChainHistory_1.getGovernanceAction)(description),
193
+ rewardAccount: view
194
+ }))
195
+ : undefined;
196
+ const mapAsset = (asset) => [asset[0], BigInt(asset[1])];
197
+ const compound = (certs1, certs2, merge) => {
198
+ const result1 = [];
199
+ const result = [];
200
+ const foundIndexes2 = [];
201
+ for (const c1 of certs1) {
202
+ const c2index = certs2.findIndex((c2) => c1[0] === c2[0]);
203
+ if (c2index === -1)
204
+ result1.push(c1);
205
+ else {
206
+ foundIndexes2.push(c2index);
207
+ result.push([c1[0], merge(c1[1], certs2[c2index][1])]);
208
+ }
209
+ }
210
+ const result2 = certs2.filter((_, c2index) => !foundIndexes2.includes(c2index));
211
+ return [result1, result2, result];
212
+ };
213
+ const mapCertificates = (tx) => {
214
+ const { deRep, reg, sDele, unReg, vDele, spReg, spRetire, commReg, commRet } = tx;
215
+ const result = [];
216
+ let sRegDel;
217
+ let sVotRegDel;
218
+ let sVotDel;
219
+ let vRegDel;
220
+ const mapStakeReg = (cert) => ({
221
+ __typename: core_1.Cardano.CertificateType.Registration,
222
+ deposit: BigInt(cert[1]),
223
+ stakeCredential: core_1.Cardano.Address.fromBech32(cert[2]).asReward().getPaymentCredential()
224
+ });
225
+ let sReg = (reg[0][2] ? reg : []).map((cert) => [cert[0], mapStakeReg(cert)]);
226
+ const mapStakeDeleg = (cert) => ({
227
+ __typename: core_1.Cardano.CertificateType.StakeDelegation,
228
+ poolId: cert[2],
229
+ stakeCredential: core_1.Cardano.Address.fromBech32(cert[1]).asReward().getPaymentCredential()
230
+ });
231
+ let sDel = (sDele[0][1] ? sDele : []).map((cert) => [cert[0], mapStakeDeleg(cert)]);
232
+ const mapVoteDeleg = (cert) => ({
233
+ __typename: core_1.Cardano.CertificateType.VoteDelegation,
234
+ dRep: (cert[2]
235
+ ? { hash: cert[2], type: cert[1] }
236
+ : cert[3] === 'drep_always_abstain'
237
+ ? { __typename: 'AlwaysAbstain' }
238
+ : { __typename: 'AlwaysNoConfidence' }),
239
+ stakeCredential: core_1.Cardano.Address.fromBech32(cert[4]).asReward().getPaymentCredential()
240
+ });
241
+ let vDel = (vDele[0][0] !== null ? vDele : []).map((cert) => [cert[0], mapVoteDeleg(cert)]);
242
+ [sDel, sReg, sRegDel] = compound(sDel, sReg, ({ poolId }, { deposit, stakeCredential }) => ({
243
+ __typename: core_1.Cardano.CertificateType.StakeRegistrationDelegation,
244
+ deposit,
245
+ poolId,
246
+ stakeCredential
247
+ }));
248
+ [vDel, sRegDel, sVotRegDel] = compound(vDel, sRegDel, ({ dRep, stakeCredential }, { poolId, deposit }) => ({
249
+ __typename: core_1.Cardano.CertificateType.StakeVoteRegistrationDelegation,
250
+ dRep,
251
+ deposit,
252
+ poolId,
253
+ stakeCredential
254
+ }));
255
+ [sDel, vDel, sVotDel] = compound(sDel, vDel, ({ poolId }, { dRep, stakeCredential }) => ({
256
+ __typename: core_1.Cardano.CertificateType.StakeVoteDelegation,
257
+ dRep,
258
+ poolId,
259
+ stakeCredential
260
+ }));
261
+ [sReg, vDel, vRegDel] = compound(sReg, vDel, ({ deposit }, { dRep, stakeCredential }) => ({
262
+ __typename: core_1.Cardano.CertificateType.VoteRegistrationDelegation,
263
+ dRep,
264
+ deposit,
265
+ stakeCredential
266
+ }));
267
+ for (const cert of sReg)
268
+ result[cert[0]] = cert[1];
269
+ for (const cert of sDel)
270
+ result[cert[0]] = cert[1];
271
+ for (const cert of vDel)
272
+ result[cert[0]] = cert[1];
273
+ for (const cert of sRegDel)
274
+ result[cert[0]] = cert[1];
275
+ for (const cert of sVotDel)
276
+ result[cert[0]] = cert[1];
277
+ for (const cert of vRegDel)
278
+ result[cert[0]] = cert[1];
279
+ for (const cert of sVotRegDel)
280
+ result[cert[0]] = cert[1];
281
+ if (unReg[0][2])
282
+ for (const cert of unReg)
283
+ result[cert[0]] = {
284
+ __typename: core_1.Cardano.CertificateType.Unregistration,
285
+ deposit: BigInt(cert[1]),
286
+ stakeCredential: core_1.Cardano.Address.fromBech32(cert[2]).asReward().getPaymentCredential()
287
+ };
288
+ if (deRep[0][3])
289
+ for (const [dep, ...cert] of deRep) {
290
+ const update = dep === null;
291
+ const unreg = !update && dep.startsWith('-');
292
+ const deposit = BigInt(update ? 0 : unreg ? dep.slice(1) : dep);
293
+ const anchor = (0, mappers_1.mapAnchor)(cert[3], cert[4]);
294
+ result[cert[0]] = {
295
+ ...(update
296
+ ? { __typename: core_1.Cardano.CertificateType.UpdateDelegateRepresentative, anchor }
297
+ : unreg
298
+ ? { __typename: core_1.Cardano.CertificateType.UnregisterDelegateRepresentative, deposit }
299
+ : { __typename: core_1.Cardano.CertificateType.RegisterDelegateRepresentative, anchor, deposit }),
300
+ dRepCredential: { hash: cert[2], type: cert[1] }
301
+ };
302
+ }
303
+ if (spReg[0][1])
304
+ for (const cert of spReg)
305
+ result[cert[0]] = {
306
+ __typename: core_1.Cardano.CertificateType.PoolRegistration,
307
+ deposit: BigInt(cert[2]),
308
+ poolParameters: {
309
+ cost: BigInt(cert[5]),
310
+ id: cert[1],
311
+ margin: core_1.Cardano.FractionUtils.toFraction(cert[6]),
312
+ owners: [],
313
+ pledge: BigInt(cert[4]),
314
+ relays: [],
315
+ rewardAccount: cert[3],
316
+ vrf: cert[7]
317
+ }
318
+ };
319
+ if (spRetire[0][2])
320
+ for (const cert of spRetire)
321
+ result[cert[0]] = {
322
+ __typename: core_1.Cardano.CertificateType.PoolRetirement,
323
+ epoch: cert[1],
324
+ poolId: cert[2]
325
+ };
326
+ const getCredentialType = (hasScript) => hasScript ? core_1.Cardano.CredentialType.ScriptHash : core_1.Cardano.CredentialType.KeyHash;
327
+ if (commReg[0][1])
328
+ for (const cert of commReg)
329
+ result[cert[0]] = {
330
+ __typename: core_1.Cardano.CertificateType.AuthorizeCommitteeHot,
331
+ coldCredential: { hash: cert[1], type: getCredentialType(cert[2]) },
332
+ hotCredential: { hash: cert[3], type: getCredentialType(cert[4]) }
333
+ };
334
+ if (commRet[0][1])
335
+ for (const cert of commRet)
336
+ result[cert[0]] = {
337
+ __typename: core_1.Cardano.CertificateType.ResignCommitteeCold,
338
+ anchor: (0, mappers_1.mapAnchor)(cert[3], cert[4]),
339
+ coldCredential: { hash: cert[1], type: getCredentialType(cert[2]) }
340
+ };
341
+ return result.length > 0 ? result : undefined;
342
+ };
343
+ const mapOutput = (output) => {
344
+ const assets = output.assets[0][0] ? new Map(output.assets.map(mapAsset)) : undefined;
345
+ const result = {
346
+ address: output.address,
347
+ value: { coins: BigInt(output.value) }
348
+ };
349
+ if (assets)
350
+ result.value.assets = assets;
351
+ if (output.datum)
352
+ result.datum = output.datum;
353
+ if (output.hash)
354
+ result.datumHash = output.hash;
355
+ if (output.script)
356
+ result.scriptReference =
357
+ output.script.__type === '_native' ? (0, core_1.jsonToNativeScript)(output.script.json) : output.script;
358
+ return result;
359
+ };
360
+ const stubRedeemerData = Buffer.from('not implemented');
361
+ const mapRedeemer = (redeemer) => ({
362
+ data: stubRedeemerData,
363
+ executionUnits: { memory: redeemer.mem, steps: redeemer.steps },
364
+ index: redeemer.index,
365
+ purpose: redeemerPurposeMap[redeemer.purpose]
366
+ });
367
+ const mapVoter = ({ role, cVoter, cScript, dVoter, dScript, pVoter }) => {
368
+ switch (role) {
369
+ case 'ConstitutionalCommittee':
370
+ return cScript
371
+ ? {
372
+ __typename: core_1.Cardano.VoterType.ccHotScriptHash,
373
+ credential: { hash: cVoter, type: core_1.Cardano.CredentialType.ScriptHash }
374
+ }
375
+ : {
376
+ __typename: core_1.Cardano.VoterType.ccHotKeyHash,
377
+ credential: { hash: cVoter, type: core_1.Cardano.CredentialType.KeyHash }
378
+ };
379
+ case 'DRep':
380
+ return dScript
381
+ ? {
382
+ __typename: core_1.Cardano.VoterType.dRepScriptHash,
383
+ credential: { hash: dVoter, type: core_1.Cardano.CredentialType.ScriptHash }
384
+ }
385
+ : {
386
+ __typename: core_1.Cardano.VoterType.dRepKeyHash,
387
+ credential: { hash: dVoter, type: core_1.Cardano.CredentialType.KeyHash }
388
+ };
389
+ case 'SPO':
390
+ return {
391
+ __typename: core_1.Cardano.VoterType.stakePoolKeyHash,
392
+ credential: { hash: pVoter, type: core_1.Cardano.CredentialType.KeyHash }
393
+ };
394
+ }
395
+ };
396
+ exports.mapVoter = mapVoter;
397
+ const mapVotes = (votes) => {
398
+ const procedures = [];
399
+ let lastStringified = '';
400
+ let lastVotes = [];
401
+ for (const vote of votes) {
402
+ const voter = (0, exports.mapVoter)(vote);
403
+ const stringified = JSON.stringify(voter);
404
+ const procedure = {
405
+ actionId: { actionIndex: vote.index, id: vote.tx },
406
+ votingProcedure: { anchor: vote.url ? (0, mappers_1.mapAnchor)(vote.url, vote.hash) : null, vote: vote.vote }
407
+ };
408
+ if (stringified !== lastStringified) {
409
+ lastStringified = stringified;
410
+ procedures.push({ voter, votes: (lastVotes = [procedure]) });
411
+ }
412
+ else
413
+ lastVotes.push(procedure);
414
+ }
415
+ return procedures;
416
+ };
417
+ const mapWithdrawals = (withdrawals) => withdrawals[0].stakeAddress
418
+ ? (withdrawals || []).map(({ quantity, stakeAddress }) => ({
419
+ quantity: BigInt(quantity),
420
+ stakeAddress
421
+ }))
422
+ : undefined;
423
+ const signatures = new Map();
424
+ const mapTx = (tx) => {
425
+ const collateralReturn = tx.collateral.address ? mapOutput(tx.collateral) : undefined;
426
+ const collaterals = tx.collaterals[0].txId ? tx.collaterals : [];
427
+ const fee = BigInt(tx.fee);
428
+ const inputs = tx.inputs[0].address ? tx.inputs : [];
429
+ const outputs = tx.outputs[0].address ? tx.outputs.map(mapOutput) : [];
430
+ return {
431
+ auxiliaryData: tx.metadata[0][1] ? tx.metadata : undefined,
432
+ blockHeader: { blockNo: tx.block, hash: tx.hash, slot: tx.slot },
433
+ body: {
434
+ ...(tx.valid
435
+ ? { collateralReturn, collaterals, fee, inputs, outputs }
436
+ : {
437
+ collateralReturn: outputs[0],
438
+ collaterals: inputs,
439
+ fee: 0n,
440
+ inputs: [],
441
+ outputs: [],
442
+ totalCollateral: fee
443
+ }),
444
+ certificates: mapCertificates(tx),
445
+ mint: tx.mint[0][0] ? new Map(tx.mint.map(mapAsset)) : undefined,
446
+ proposalProcedures: mapActions(tx.actions),
447
+ validityInterval: { invalidBefore: tx.before || undefined, invalidHereafter: tx.hereafter || undefined },
448
+ votingProcedures: tx.votes[0].role ? mapVotes(tx.votes) : undefined,
449
+ withdrawals: mapWithdrawals(tx.withdrawals)
450
+ },
451
+ id: tx.id,
452
+ index: tx.index,
453
+ inputSource: tx.valid ? core_1.Cardano.InputSource.inputs : core_1.Cardano.InputSource.collaterals,
454
+ txSize: tx.size,
455
+ witness: { redeemers: tx.redeemers[0].purpose ? tx.redeemers.map(mapRedeemer) : undefined, signatures }
456
+ };
457
+ };
458
+ const actions = [{}];
459
+ const collateral = {};
460
+ const collaterals = [{}];
461
+ const commReg = [[]];
462
+ const commRet = [[]];
463
+ const deRep = [[]];
464
+ const metadata = [[]];
465
+ const mint = [[]];
466
+ const redeemers = [{}];
467
+ const reg = [[]];
468
+ const sDele = [[]];
469
+ const spReg = [[]];
470
+ const spRetire = [[]];
471
+ const unReg = [[]];
472
+ const vDele = [[null]];
473
+ const votes = [{}];
474
+ const withdrawals = [{}];
475
+ const transactionsByIds = async (ids, db) => {
476
+ const { rows } = await db.query({ name: 'get_txs', text: getTransactions, values: [ids] });
477
+ return rows.map(({ tx }) => mapTx(tx));
478
+ };
479
+ exports.transactionsByIds = transactionsByIds;
480
+ const partialTransactionsByIds = async (ids, db) => {
481
+ const { rows } = await db.query({ name: 'get_utxos', text: getUtxos, values: [ids] });
482
+ return rows
483
+ .map(({ tx }) => ({
484
+ tx: {
485
+ ...tx,
486
+ actions,
487
+ collateral,
488
+ collaterals,
489
+ commReg,
490
+ commRet,
491
+ deRep,
492
+ metadata,
493
+ mint,
494
+ redeemers,
495
+ reg,
496
+ sDele,
497
+ spReg,
498
+ spRetire,
499
+ unReg,
500
+ vDele,
501
+ votes,
502
+ withdrawals
503
+ }
504
+ }))
505
+ .map(({ tx }) => mapTx(tx));
506
+ };
507
+ exports.partialTransactionsByIds = partialTransactionsByIds;
508
+ //# sourceMappingURL=transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../src/WsServer/transactions.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cardano-sdk/cardano-services",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "Cardano GraphQL Services",
5
5
  "engines": {
6
6
  "node": ">=16.20.2"
@@ -64,7 +64,7 @@
64
64
  },
65
65
  "devDependencies": {
66
66
  "@cardano-ogmios/client": "6.5.0",
67
- "@cardano-sdk/util-dev": "~0.23.0",
67
+ "@cardano-sdk/util-dev": "~0.23.2",
68
68
  "@types/bunyan": "^1.8.8",
69
69
  "@types/cors": "^2.8.13",
70
70
  "@types/death": "^1.1.2",
@@ -96,14 +96,14 @@
96
96
  },
97
97
  "dependencies": {
98
98
  "@blockfrost/blockfrost-js": "^5.5.0",
99
- "@cardano-sdk/cardano-services-client": "~0.20.9",
100
- "@cardano-sdk/core": "~0.40.0",
99
+ "@cardano-sdk/cardano-services-client": "~0.21.0",
100
+ "@cardano-sdk/core": "~0.41.0",
101
101
  "@cardano-sdk/crypto": "~0.1.30",
102
- "@cardano-sdk/ogmios": "~0.18.0",
103
- "@cardano-sdk/projection": "~0.12.0",
104
- "@cardano-sdk/projection-typeorm": "~0.9.0",
102
+ "@cardano-sdk/ogmios": "~0.18.2",
103
+ "@cardano-sdk/projection": "~0.12.2",
104
+ "@cardano-sdk/projection-typeorm": "~0.9.2",
105
105
  "@cardano-sdk/util": "~0.15.5",
106
- "@cardano-sdk/util-rxjs": "~0.7.33",
106
+ "@cardano-sdk/util-rxjs": "~0.7.35",
107
107
  "@hapi/topo": "^6.0.2",
108
108
  "axios": "^1.7.4",
109
109
  "backoff-rxjs": "^7.0.0",
@@ -144,5 +144,5 @@
144
144
  "LICENSE",
145
145
  "NOTICE"
146
146
  ],
147
- "gitHead": "58513e2ae961e81bd0f168e3d65f29b15aa4ff87"
147
+ "gitHead": "7b57a20fa480214f31a2773e7da732f2572243ce"
148
148
  }