@cardano-sdk/cardano-services-client 0.22.2 → 0.23.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 (156) hide show
  1. package/dist/cjs/ChainHistoryProvider/BlockfrostChainHistoryProvider.d.ts +42 -0
  2. package/dist/cjs/ChainHistoryProvider/BlockfrostChainHistoryProvider.d.ts.map +1 -0
  3. package/dist/cjs/ChainHistoryProvider/BlockfrostChainHistoryProvider.js +430 -0
  4. package/dist/cjs/ChainHistoryProvider/BlockfrostChainHistoryProvider.js.map +1 -0
  5. package/dist/cjs/ChainHistoryProvider/index.d.ts +1 -0
  6. package/dist/cjs/ChainHistoryProvider/index.d.ts.map +1 -1
  7. package/dist/cjs/ChainHistoryProvider/index.js +1 -0
  8. package/dist/cjs/ChainHistoryProvider/index.js.map +1 -1
  9. package/dist/cjs/DRepProvider/BlockfrostDRepProvider.d.ts +10 -0
  10. package/dist/cjs/DRepProvider/BlockfrostDRepProvider.d.ts.map +1 -0
  11. package/dist/cjs/DRepProvider/BlockfrostDRepProvider.js +36 -0
  12. package/dist/cjs/DRepProvider/BlockfrostDRepProvider.js.map +1 -0
  13. package/dist/cjs/DRepProvider/index.d.ts +2 -0
  14. package/dist/cjs/DRepProvider/index.d.ts.map +1 -0
  15. package/dist/cjs/DRepProvider/index.js +18 -0
  16. package/dist/cjs/DRepProvider/index.js.map +1 -0
  17. package/dist/cjs/NetworkInfoProvider/BlockfrostNetworkInfoProvider.d.ts +17 -0
  18. package/dist/cjs/NetworkInfoProvider/BlockfrostNetworkInfoProvider.d.ts.map +1 -0
  19. package/dist/cjs/NetworkInfoProvider/BlockfrostNetworkInfoProvider.js +111 -0
  20. package/dist/cjs/NetworkInfoProvider/BlockfrostNetworkInfoProvider.js.map +1 -0
  21. package/dist/cjs/NetworkInfoProvider/index.d.ts +1 -0
  22. package/dist/cjs/NetworkInfoProvider/index.d.ts.map +1 -1
  23. package/dist/cjs/NetworkInfoProvider/index.js +1 -0
  24. package/dist/cjs/NetworkInfoProvider/index.js.map +1 -1
  25. package/dist/cjs/RewardsProvider/BlockfrostRewardsProvider.d.ts +11 -0
  26. package/dist/cjs/RewardsProvider/BlockfrostRewardsProvider.d.ts.map +1 -0
  27. package/dist/cjs/RewardsProvider/BlockfrostRewardsProvider.js +46 -0
  28. package/dist/cjs/RewardsProvider/BlockfrostRewardsProvider.js.map +1 -0
  29. package/dist/cjs/RewardsProvider/index.d.ts +1 -0
  30. package/dist/cjs/RewardsProvider/index.d.ts.map +1 -1
  31. package/dist/cjs/RewardsProvider/index.js +1 -0
  32. package/dist/cjs/RewardsProvider/index.js.map +1 -1
  33. package/dist/cjs/TxSubmitProvider/BlockfrostTxSubmitProvider.d.ts +8 -0
  34. package/dist/cjs/TxSubmitProvider/BlockfrostTxSubmitProvider.d.ts.map +1 -0
  35. package/dist/cjs/TxSubmitProvider/BlockfrostTxSubmitProvider.js +18 -0
  36. package/dist/cjs/TxSubmitProvider/BlockfrostTxSubmitProvider.js.map +1 -0
  37. package/dist/cjs/TxSubmitProvider/index.d.ts +1 -0
  38. package/dist/cjs/TxSubmitProvider/index.d.ts.map +1 -1
  39. package/dist/cjs/TxSubmitProvider/index.js +1 -0
  40. package/dist/cjs/TxSubmitProvider/index.js.map +1 -1
  41. package/dist/cjs/UtxoProvider/BlockfrostUtxoProvider.d.ts +9 -0
  42. package/dist/cjs/UtxoProvider/BlockfrostUtxoProvider.d.ts.map +1 -0
  43. package/dist/cjs/UtxoProvider/BlockfrostUtxoProvider.js +52 -0
  44. package/dist/cjs/UtxoProvider/BlockfrostUtxoProvider.js.map +1 -0
  45. package/dist/cjs/UtxoProvider/index.d.ts +1 -0
  46. package/dist/cjs/UtxoProvider/index.d.ts.map +1 -1
  47. package/dist/cjs/UtxoProvider/index.js +1 -0
  48. package/dist/cjs/UtxoProvider/index.js.map +1 -1
  49. package/dist/cjs/blockfrost/BlockfrostClient.d.ts +1 -1
  50. package/dist/cjs/blockfrost/BlockfrostClient.d.ts.map +1 -1
  51. package/dist/cjs/blockfrost/BlockfrostClient.js +10 -4
  52. package/dist/cjs/blockfrost/BlockfrostClient.js.map +1 -1
  53. package/dist/cjs/blockfrost/BlockfrostProvider.d.ts +1 -1
  54. package/dist/cjs/blockfrost/BlockfrostProvider.d.ts.map +1 -1
  55. package/dist/cjs/blockfrost/BlockfrostProvider.js +5 -2
  56. package/dist/cjs/blockfrost/BlockfrostProvider.js.map +1 -1
  57. package/dist/cjs/blockfrost/BlockfrostToCore.d.ts +48 -0
  58. package/dist/cjs/blockfrost/BlockfrostToCore.d.ts.map +1 -0
  59. package/dist/cjs/blockfrost/BlockfrostToCore.js +104 -0
  60. package/dist/cjs/blockfrost/BlockfrostToCore.js.map +1 -0
  61. package/dist/cjs/blockfrost/blockfrost-js.d.ts +8 -0
  62. package/dist/cjs/blockfrost/blockfrost-js.d.ts.map +1 -0
  63. package/dist/cjs/blockfrost/blockfrost-js.js +11 -0
  64. package/dist/cjs/blockfrost/blockfrost-js.js.map +1 -0
  65. package/dist/cjs/blockfrost/index.d.ts +2 -0
  66. package/dist/cjs/blockfrost/index.d.ts.map +1 -1
  67. package/dist/cjs/blockfrost/index.js +6 -0
  68. package/dist/cjs/blockfrost/index.js.map +1 -1
  69. package/dist/cjs/blockfrost/util.d.ts +9 -3
  70. package/dist/cjs/blockfrost/util.d.ts.map +1 -1
  71. package/dist/cjs/blockfrost/util.js +28 -6
  72. package/dist/cjs/blockfrost/util.js.map +1 -1
  73. package/dist/cjs/index.d.ts +2 -0
  74. package/dist/cjs/index.d.ts.map +1 -1
  75. package/dist/cjs/index.js +2 -0
  76. package/dist/cjs/index.js.map +1 -1
  77. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  78. package/dist/esm/ChainHistoryProvider/BlockfrostChainHistoryProvider.d.ts +42 -0
  79. package/dist/esm/ChainHistoryProvider/BlockfrostChainHistoryProvider.d.ts.map +1 -0
  80. package/dist/esm/ChainHistoryProvider/BlockfrostChainHistoryProvider.js +423 -0
  81. package/dist/esm/ChainHistoryProvider/BlockfrostChainHistoryProvider.js.map +1 -0
  82. package/dist/esm/ChainHistoryProvider/index.d.ts +1 -0
  83. package/dist/esm/ChainHistoryProvider/index.d.ts.map +1 -1
  84. package/dist/esm/ChainHistoryProvider/index.js +1 -0
  85. package/dist/esm/ChainHistoryProvider/index.js.map +1 -1
  86. package/dist/esm/DRepProvider/BlockfrostDRepProvider.d.ts +10 -0
  87. package/dist/esm/DRepProvider/BlockfrostDRepProvider.d.ts.map +1 -0
  88. package/dist/esm/DRepProvider/BlockfrostDRepProvider.js +32 -0
  89. package/dist/esm/DRepProvider/BlockfrostDRepProvider.js.map +1 -0
  90. package/dist/esm/DRepProvider/index.d.ts +2 -0
  91. package/dist/esm/DRepProvider/index.d.ts.map +1 -0
  92. package/dist/esm/DRepProvider/index.js +2 -0
  93. package/dist/esm/DRepProvider/index.js.map +1 -0
  94. package/dist/esm/NetworkInfoProvider/BlockfrostNetworkInfoProvider.d.ts +17 -0
  95. package/dist/esm/NetworkInfoProvider/BlockfrostNetworkInfoProvider.d.ts.map +1 -0
  96. package/dist/esm/NetworkInfoProvider/BlockfrostNetworkInfoProvider.js +107 -0
  97. package/dist/esm/NetworkInfoProvider/BlockfrostNetworkInfoProvider.js.map +1 -0
  98. package/dist/esm/NetworkInfoProvider/index.d.ts +1 -0
  99. package/dist/esm/NetworkInfoProvider/index.d.ts.map +1 -1
  100. package/dist/esm/NetworkInfoProvider/index.js +1 -0
  101. package/dist/esm/NetworkInfoProvider/index.js.map +1 -1
  102. package/dist/esm/RewardsProvider/BlockfrostRewardsProvider.d.ts +11 -0
  103. package/dist/esm/RewardsProvider/BlockfrostRewardsProvider.d.ts.map +1 -0
  104. package/dist/esm/RewardsProvider/BlockfrostRewardsProvider.js +42 -0
  105. package/dist/esm/RewardsProvider/BlockfrostRewardsProvider.js.map +1 -0
  106. package/dist/esm/RewardsProvider/index.d.ts +1 -0
  107. package/dist/esm/RewardsProvider/index.d.ts.map +1 -1
  108. package/dist/esm/RewardsProvider/index.js +1 -0
  109. package/dist/esm/RewardsProvider/index.js.map +1 -1
  110. package/dist/esm/TxSubmitProvider/BlockfrostTxSubmitProvider.d.ts +8 -0
  111. package/dist/esm/TxSubmitProvider/BlockfrostTxSubmitProvider.d.ts.map +1 -0
  112. package/dist/esm/TxSubmitProvider/BlockfrostTxSubmitProvider.js +14 -0
  113. package/dist/esm/TxSubmitProvider/BlockfrostTxSubmitProvider.js.map +1 -0
  114. package/dist/esm/TxSubmitProvider/index.d.ts +1 -0
  115. package/dist/esm/TxSubmitProvider/index.d.ts.map +1 -1
  116. package/dist/esm/TxSubmitProvider/index.js +1 -0
  117. package/dist/esm/TxSubmitProvider/index.js.map +1 -1
  118. package/dist/esm/UtxoProvider/BlockfrostUtxoProvider.d.ts +9 -0
  119. package/dist/esm/UtxoProvider/BlockfrostUtxoProvider.d.ts.map +1 -0
  120. package/dist/esm/UtxoProvider/BlockfrostUtxoProvider.js +48 -0
  121. package/dist/esm/UtxoProvider/BlockfrostUtxoProvider.js.map +1 -0
  122. package/dist/esm/UtxoProvider/index.d.ts +1 -0
  123. package/dist/esm/UtxoProvider/index.d.ts.map +1 -1
  124. package/dist/esm/UtxoProvider/index.js +1 -0
  125. package/dist/esm/UtxoProvider/index.js.map +1 -1
  126. package/dist/esm/blockfrost/BlockfrostClient.d.ts +1 -1
  127. package/dist/esm/blockfrost/BlockfrostClient.d.ts.map +1 -1
  128. package/dist/esm/blockfrost/BlockfrostClient.js +10 -4
  129. package/dist/esm/blockfrost/BlockfrostClient.js.map +1 -1
  130. package/dist/esm/blockfrost/BlockfrostProvider.d.ts +1 -1
  131. package/dist/esm/blockfrost/BlockfrostProvider.d.ts.map +1 -1
  132. package/dist/esm/blockfrost/BlockfrostProvider.js +5 -2
  133. package/dist/esm/blockfrost/BlockfrostProvider.js.map +1 -1
  134. package/dist/esm/blockfrost/BlockfrostToCore.d.ts +48 -0
  135. package/dist/esm/blockfrost/BlockfrostToCore.d.ts.map +1 -0
  136. package/dist/esm/blockfrost/BlockfrostToCore.js +101 -0
  137. package/dist/esm/blockfrost/BlockfrostToCore.js.map +1 -0
  138. package/dist/esm/blockfrost/blockfrost-js.d.ts +8 -0
  139. package/dist/esm/blockfrost/blockfrost-js.d.ts.map +1 -0
  140. package/dist/esm/blockfrost/blockfrost-js.js +7 -0
  141. package/dist/esm/blockfrost/blockfrost-js.js.map +1 -0
  142. package/dist/esm/blockfrost/index.d.ts +2 -0
  143. package/dist/esm/blockfrost/index.d.ts.map +1 -1
  144. package/dist/esm/blockfrost/index.js +2 -0
  145. package/dist/esm/blockfrost/index.js.map +1 -1
  146. package/dist/esm/blockfrost/util.d.ts +9 -3
  147. package/dist/esm/blockfrost/util.d.ts.map +1 -1
  148. package/dist/esm/blockfrost/util.js +26 -6
  149. package/dist/esm/blockfrost/util.js.map +1 -1
  150. package/dist/esm/index.d.ts +2 -0
  151. package/dist/esm/index.d.ts.map +1 -1
  152. package/dist/esm/index.js +2 -0
  153. package/dist/esm/index.js.map +1 -1
  154. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  155. package/dist/package.json +6 -4
  156. package/package.json +6 -4
@@ -0,0 +1,42 @@
1
+ import { BlockfrostClient, BlockfrostProvider } from '../blockfrost';
2
+ import { BlocksByIdsArgs, Cardano, ChainHistoryProvider, NetworkInfoProvider, Paginated, TransactionsByAddressesArgs, TransactionsByIdsArgs } from '@cardano-sdk/core';
3
+ import { Logger } from 'ts-log';
4
+ import type { Responses } from '@blockfrost/blockfrost-js';
5
+ import type { Schemas } from '@blockfrost/blockfrost-js/lib/types/open-api';
6
+ declare type WithCertIndex<T> = T & {
7
+ cert_index: number;
8
+ };
9
+ export declare const DB_MAX_SAFE_INTEGER = 2147483647;
10
+ export declare class BlockfrostChainHistoryProvider extends BlockfrostProvider implements ChainHistoryProvider {
11
+ private networkInfoProvider;
12
+ constructor(client: BlockfrostClient, networkInfoProvider: NetworkInfoProvider, logger: Logger);
13
+ protected fetchRedeemers({ hash, redeemer_count }: Responses['tx_content']): Promise<Cardano.Redeemer[] | undefined>;
14
+ protected fetchWithdrawals({ withdrawal_count, hash }: Responses['tx_content']): Promise<Cardano.Withdrawal[] | undefined>;
15
+ protected gatherMintsFromUtxos({ asset_mint_or_burn_count }: Responses['tx_content'], { inputs, outputs }: Responses['tx_content_utxo']): Cardano.TokenMap | undefined;
16
+ protected fetchPoolRetireCerts(hash: string): Promise<WithCertIndex<Cardano.PoolRetirementCertificate>[]>;
17
+ protected fetchPoolUpdateCerts(hash: string): Promise<WithCertIndex<Cardano.PoolRegistrationCertificate>[]>;
18
+ fetchCBOR(hash: string): Promise<string>;
19
+ protected fetchDetailsFromCBOR(hash: string): Promise<Cardano.Tx<Cardano.TxBody> | null>;
20
+ protected fetchMirCerts(hash: string): Promise<WithCertIndex<Cardano.MirCertificate>[]>;
21
+ protected fetchStakeCerts(hash: string): Promise<WithCertIndex<Cardano.StakeAddressCertificate>[]>;
22
+ protected fetchDelegationCerts(hash: string): Promise<WithCertIndex<Cardano.StakeDelegationCertificate>[]>;
23
+ protected fetchCertificates({ pool_retire_count, pool_update_count, mir_cert_count, stake_cert_count, delegation_count, hash }: Responses['tx_content']): Promise<Cardano.Certificate[] | undefined>;
24
+ protected fetchJsonMetadataAsAuxiliaryData(txHash: string): Promise<Cardano.AuxiliaryData | undefined>;
25
+ protected parseValidityInterval: (num: string | null) => Cardano.Slot | undefined;
26
+ protected fetchEpochNo(slotNo: Cardano.Slot): Promise<Cardano.EpochNo>;
27
+ protected fetchEpochParameters(epochNo: Cardano.EpochNo): Promise<Schemas['epoch_param_content']>;
28
+ protected processCertificates(txContent: Schemas['tx_content'], certificates?: Cardano.Certificate[]): Promise<Cardano.Certificate[] | undefined>;
29
+ protected transactionDetailsUsingAPIs(txContent: Responses['tx_content']): Promise<Cardano.HydratedTx>;
30
+ private witnessFromRedeemers;
31
+ protected transactionDetailsUsingCBOR(txContent: Responses['tx_content']): Promise<Cardano.HydratedTx | undefined>;
32
+ protected fetchTransaction(txId: Cardano.TransactionId): Promise<Cardano.HydratedTx>;
33
+ private transactionUtxos;
34
+ blocksByHashes({ ids }: BlocksByIdsArgs): Promise<Cardano.ExtendedBlockInfo[]>;
35
+ transactionsByHashes({ ids }: TransactionsByIdsArgs): Promise<Cardano.HydratedTx[]>;
36
+ transactionsByAddresses({ addresses, pagination, blockRange }: TransactionsByAddressesArgs): Promise<Paginated<Cardano.HydratedTx>>;
37
+ private mapTxBody;
38
+ private mapBlockHeader;
39
+ private fetchUtxos;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=BlockfrostChainHistoryProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockfrostChainHistoryProvider.d.ts","sourceRoot":"","sources":["../../../src/ChainHistoryProvider/BlockfrostChainHistoryProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,430 @@
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.BlockfrostChainHistoryProvider = exports.DB_MAX_SAFE_INTEGER = void 0;
7
+ const blockfrost_1 = require("../blockfrost");
8
+ const core_1 = require("@cardano-sdk/core");
9
+ const omit_js_1 = __importDefault(require("lodash/omit.js"));
10
+ exports.DB_MAX_SAFE_INTEGER = 2147483647;
11
+ class BlockfrostChainHistoryProvider extends blockfrost_1.BlockfrostProvider {
12
+ constructor(client, networkInfoProvider, logger) {
13
+ super(client, logger);
14
+ this.parseValidityInterval = (num) => core_1.Cardano.Slot(Number.parseInt(num || '')) || undefined;
15
+ this.networkInfoProvider = networkInfoProvider;
16
+ }
17
+ async fetchRedeemers({ hash, redeemer_count }) {
18
+ if (!redeemer_count)
19
+ return;
20
+ return this.request(`txs/${hash}/redeemers`).then((response) => response.map(({ purpose, script_hash, unit_mem, unit_steps, tx_index }) => ({
21
+ data: Buffer.from(script_hash),
22
+ executionUnits: {
23
+ memory: Number.parseInt(unit_mem),
24
+ steps: Number.parseInt(unit_steps)
25
+ },
26
+ index: tx_index,
27
+ purpose: (() => {
28
+ switch (purpose) {
29
+ case 'cert':
30
+ return core_1.Cardano.RedeemerPurpose.certificate;
31
+ case 'reward':
32
+ return core_1.Cardano.RedeemerPurpose.withdrawal;
33
+ case 'mint':
34
+ return core_1.Cardano.RedeemerPurpose.mint;
35
+ case 'spend':
36
+ return core_1.Cardano.RedeemerPurpose.spend;
37
+ default:
38
+ return purpose;
39
+ }
40
+ })()
41
+ })));
42
+ }
43
+ async fetchWithdrawals({ withdrawal_count, hash }) {
44
+ if (!withdrawal_count)
45
+ return;
46
+ return this.request(`txs/${hash}/withdrawals`).then((response) => response.map(({ address, amount }) => ({
47
+ quantity: BigInt(amount),
48
+ stakeAddress: core_1.Cardano.RewardAccount(address)
49
+ })));
50
+ }
51
+ gatherMintsFromUtxos({ asset_mint_or_burn_count }, { inputs, outputs }) {
52
+ if (!asset_mint_or_burn_count)
53
+ return;
54
+ const outputAmounts = outputs.flatMap((o) => o.amount);
55
+ const inputAmounts = inputs.flatMap((i) => i.amount);
56
+ const amountDifference = outputAmounts.filter((amount1) => !inputAmounts.some((amount2) => amount1.unit === amount2.unit));
57
+ return new Map(amountDifference.map((amount) => [core_1.Cardano.AssetId(amount.unit), BigInt(amount.quantity)]));
58
+ }
59
+ async fetchPoolRetireCerts(hash) {
60
+ return this.request(`txs/${hash}/pool_retires`).then((response) => response.map(({ pool_id, retiring_epoch, cert_index }) => ({
61
+ __typename: core_1.Cardano.CertificateType.PoolRetirement,
62
+ cert_index,
63
+ epoch: core_1.Cardano.EpochNo(retiring_epoch),
64
+ poolId: core_1.Cardano.PoolId(pool_id)
65
+ })));
66
+ }
67
+ async fetchPoolUpdateCerts(hash) {
68
+ return this.request(`txs/${hash}/pool_updates`).then((response) => response.map(({ pool_id, cert_index, fixed_cost, margin_cost, pledge, reward_account, vrf_key }) => ({
69
+ __typename: core_1.Cardano.CertificateType.PoolRegistration,
70
+ cert_index,
71
+ poolId: core_1.Cardano.PoolId(pool_id),
72
+ poolParameters: {
73
+ cost: BigInt(fixed_cost),
74
+ id: pool_id,
75
+ margin: core_1.Cardano.FractionUtils.toFraction(margin_cost),
76
+ owners: [],
77
+ pledge: BigInt(pledge),
78
+ relays: [],
79
+ rewardAccount: reward_account,
80
+ vrf: vrf_key
81
+ }
82
+ })));
83
+ }
84
+ async fetchCBOR(hash) {
85
+ return this.request(`txs/${hash}/cbor`)
86
+ .then((response) => {
87
+ if (response)
88
+ return response.cbor;
89
+ throw new Error('CBOR is null');
90
+ })
91
+ .catch((_error) => {
92
+ throw new Error('CBOR fetch failed');
93
+ });
94
+ }
95
+ async fetchDetailsFromCBOR(hash) {
96
+ return this.fetchCBOR(hash)
97
+ .then((cbor) => {
98
+ const tx = core_1.Serialization.Transaction.fromCbor(core_1.Serialization.TxCBOR(cbor)).toCore();
99
+ this.logger.info('Fetched details from CBOR for tx', hash);
100
+ return tx;
101
+ })
102
+ .catch((error) => {
103
+ this.logger.warn('Failed to fetch details from CBOR for tx', hash, error);
104
+ return null;
105
+ });
106
+ }
107
+ async fetchMirCerts(hash) {
108
+ return this.request(`txs/${hash}/mirs`).then((response) => response.map(({ address, amount, cert_index, pot }) => ({
109
+ __typename: core_1.Cardano.CertificateType.MIR,
110
+ cert_index,
111
+ kind: core_1.Cardano.MirCertificateKind.ToStakeCreds,
112
+ pot: pot === 'reserve' ? core_1.Cardano.MirCertificatePot.Reserves : core_1.Cardano.MirCertificatePot.Treasury,
113
+ quantity: BigInt(amount),
114
+ rewardAccount: core_1.Cardano.RewardAccount(address)
115
+ })));
116
+ }
117
+ async fetchStakeCerts(hash) {
118
+ return this.request(`txs/${hash}/stakes`).then((response) => response.map(({ address, cert_index, registration }) => ({
119
+ __typename: registration
120
+ ? core_1.Cardano.CertificateType.StakeRegistration
121
+ : core_1.Cardano.CertificateType.StakeDeregistration,
122
+ cert_index,
123
+ stakeCredential: {
124
+ hash: core_1.Cardano.RewardAccount.toHash(core_1.Cardano.RewardAccount(address)),
125
+ type: core_1.Cardano.CredentialType.KeyHash
126
+ }
127
+ })));
128
+ }
129
+ async fetchDelegationCerts(hash) {
130
+ return this.request(`txs/${hash}/delegations`).then((response) => response.map(({ address, pool_id, cert_index }) => ({
131
+ __typename: core_1.Cardano.CertificateType.StakeDelegation,
132
+ cert_index,
133
+ poolId: core_1.Cardano.PoolId(pool_id),
134
+ stakeCredential: {
135
+ hash: core_1.Cardano.RewardAccount.toHash(core_1.Cardano.RewardAccount(address)),
136
+ type: core_1.Cardano.CredentialType.KeyHash
137
+ }
138
+ })));
139
+ }
140
+ async fetchCertificates({ pool_retire_count, pool_update_count, mir_cert_count, stake_cert_count, delegation_count, hash }) {
141
+ if (pool_retire_count + pool_update_count + mir_cert_count + stake_cert_count + delegation_count === 0)
142
+ return;
143
+ return Promise.all([
144
+ pool_retire_count ? this.fetchPoolRetireCerts(hash) : [],
145
+ pool_update_count ? this.fetchPoolUpdateCerts(hash) : [],
146
+ mir_cert_count ? this.fetchMirCerts(hash) : [],
147
+ stake_cert_count ? this.fetchStakeCerts(hash) : [],
148
+ delegation_count ? this.fetchDelegationCerts(hash) : []
149
+ ]).then((results) => results
150
+ .flat()
151
+ .sort((a, b) => b.cert_index - a.cert_index)
152
+ .map((cert) => cert));
153
+ }
154
+ async fetchJsonMetadataAsAuxiliaryData(txHash) {
155
+ const UNDEFINED = undefined;
156
+ return this.request(`txs/${txHash}/metadata`)
157
+ .then((m) => {
158
+ const metadata = (0, blockfrost_1.blockfrostMetadataToTxMetadata)(m);
159
+ return metadata && metadata.size > 0
160
+ ? {
161
+ blob: metadata
162
+ }
163
+ : UNDEFINED;
164
+ })
165
+ .catch((error) => {
166
+ if ((0, blockfrost_1.isBlockfrostNotFoundError)(error)) {
167
+ return UNDEFINED;
168
+ }
169
+ throw error;
170
+ });
171
+ }
172
+ async fetchEpochNo(slotNo) {
173
+ const calc = await this.networkInfoProvider.eraSummaries().then(core_1.createSlotEpochCalc);
174
+ return calc(slotNo);
175
+ }
176
+ async fetchEpochParameters(epochNo) {
177
+ return await this.request(`epochs/${epochNo}/parameters`);
178
+ }
179
+ async processCertificates(txContent, certificates) {
180
+ if (!certificates)
181
+ return;
182
+ const epochNo = await this.fetchEpochNo(core_1.Cardano.Slot(txContent.slot));
183
+ const { pool_deposit, key_deposit } = await this.fetchEpochParameters(epochNo);
184
+ return certificates.map((c) => {
185
+ const cert = (0, omit_js_1.default)(c, 'cert_index');
186
+ switch (cert.__typename) {
187
+ case core_1.Cardano.CertificateType.PoolRegistration: {
188
+ cert.poolParameters.owners = [];
189
+ cert.poolParameters.relays = [];
190
+ const deposit = txContent.deposit === undefined || txContent.deposit === '' || txContent.deposit === '0'
191
+ ? 0n
192
+ : BigInt(pool_deposit);
193
+ delete cert.poolParameters.metadataJson;
194
+ return { ...cert, deposit };
195
+ }
196
+ case core_1.Cardano.CertificateType.StakeRegistration: {
197
+ const deposit = BigInt(key_deposit);
198
+ return { ...cert, __typename: core_1.Cardano.CertificateType.Registration, deposit };
199
+ }
200
+ case core_1.Cardano.CertificateType.StakeDeregistration: {
201
+ const deposit = BigInt(key_deposit);
202
+ return { ...cert, __typename: core_1.Cardano.CertificateType.Unregistration, deposit };
203
+ }
204
+ default:
205
+ return cert;
206
+ }
207
+ });
208
+ }
209
+ async transactionDetailsUsingAPIs(txContent) {
210
+ const id = core_1.Cardano.TransactionId(txContent.hash);
211
+ const [certificates, withdrawals, utxos, auxiliaryData] = await Promise.all([
212
+ this.fetchCertificates(txContent),
213
+ this.fetchWithdrawals(txContent),
214
+ this.fetchUtxos(id),
215
+ this.fetchJsonMetadataAsAuxiliaryData(id)
216
+ ]);
217
+ const { inputs, outputs, collaterals } = this.transactionUtxos(utxos);
218
+ const mintPreOrder = this.gatherMintsFromUtxos(txContent, utxos);
219
+ const mint = mintPreOrder ? new Map([...mintPreOrder].sort()) : mintPreOrder;
220
+ const inputSource = txContent.valid_contract
221
+ ? core_1.Cardano.InputSource.inputs
222
+ : core_1.Cardano.InputSource.collaterals;
223
+ const body = this.mapTxBody({
224
+ certificates: await this.processCertificates(txContent, certificates),
225
+ collateralReturn: undefined,
226
+ collaterals,
227
+ fee: BigInt(txContent.fees),
228
+ inputs,
229
+ mint,
230
+ outputs,
231
+ proposalProcedures: undefined,
232
+ validityInterval: {
233
+ invalidBefore: this.parseValidityInterval(txContent.invalid_before),
234
+ invalidHereafter: this.parseValidityInterval(txContent.invalid_hereafter)
235
+ },
236
+ votingProcedures: undefined,
237
+ withdrawals
238
+ }, inputSource);
239
+ return {
240
+ auxiliaryData,
241
+ blockHeader: this.mapBlockHeader(txContent),
242
+ body,
243
+ id,
244
+ index: txContent.index,
245
+ inputSource,
246
+ txSize: txContent.size,
247
+ witness: this.witnessFromRedeemers(await this.fetchRedeemers(txContent))
248
+ };
249
+ }
250
+ witnessFromRedeemers(redeemers) {
251
+ const stubRedeemerData = Buffer.from('not implemented');
252
+ if (redeemers) {
253
+ for (const redeemer of redeemers) {
254
+ redeemer.data = stubRedeemerData;
255
+ }
256
+ }
257
+ return {
258
+ redeemers,
259
+ signatures: new Map()
260
+ };
261
+ }
262
+ async transactionDetailsUsingCBOR(txContent) {
263
+ const id = core_1.Cardano.TransactionId(txContent.hash);
264
+ const txFromCBOR = await this.fetchDetailsFromCBOR(id);
265
+ if (!txFromCBOR)
266
+ return;
267
+ const utxos = await this.request(`txs/${id}/utxos`);
268
+ const { inputs, outputs, collaterals } = this.transactionUtxos(utxos, txFromCBOR);
269
+ const inputSource = txContent.valid_contract
270
+ ? core_1.Cardano.InputSource.inputs
271
+ : core_1.Cardano.InputSource.collaterals;
272
+ const body = this.mapTxBody({
273
+ certificates: await this.processCertificates(txContent, txFromCBOR.body.certificates),
274
+ collateralReturn: txFromCBOR.body.collateralReturn,
275
+ collaterals,
276
+ fee: txFromCBOR.body.fee,
277
+ inputs,
278
+ mint: txFromCBOR.body.mint ? new Map([...txFromCBOR.body.mint].sort()) : undefined,
279
+ outputs,
280
+ proposalProcedures: txFromCBOR.body.proposalProcedures,
281
+ validityInterval: txFromCBOR.body.validityInterval
282
+ ? txFromCBOR.body.validityInterval
283
+ : { invalidBefore: undefined, invalidHereafter: undefined },
284
+ votingProcedures: txFromCBOR.body.votingProcedures,
285
+ withdrawals: txFromCBOR.body.withdrawals
286
+ }, inputSource);
287
+ return {
288
+ auxiliaryData: txFromCBOR.auxiliaryData,
289
+ blockHeader: this.mapBlockHeader(txContent),
290
+ body,
291
+ id,
292
+ index: txContent.index,
293
+ inputSource,
294
+ txSize: txContent.size,
295
+ witness: this.witnessFromRedeemers(txFromCBOR.witness.redeemers)
296
+ };
297
+ }
298
+ async fetchTransaction(txId) {
299
+ try {
300
+ const txContent = await this.request(`txs/${txId.toString()}`);
301
+ return (await this.transactionDetailsUsingCBOR(txContent)) ?? (await this.transactionDetailsUsingAPIs(txContent));
302
+ }
303
+ catch (error) {
304
+ throw this.toProviderError(error);
305
+ }
306
+ }
307
+ transactionUtxos(utxoResponse, txContent) {
308
+ const collaterals = utxoResponse.inputs.filter((input) => input.collateral).map(blockfrost_1.BlockfrostToCore.hydratedTxIn);
309
+ const inputs = utxoResponse.inputs
310
+ .filter((input) => !input.collateral && !input.reference)
311
+ .map(blockfrost_1.BlockfrostToCore.hydratedTxIn);
312
+ const outputPromises = utxoResponse.outputs
313
+ .filter((output) => !output.collateral)
314
+ .map((output) => {
315
+ const foundScript = txContent?.body.outputs.find((o) => o.address === output.address);
316
+ return blockfrost_1.BlockfrostToCore.txOut(output, foundScript);
317
+ });
318
+ return { collaterals, inputs, outputs: outputPromises };
319
+ }
320
+ async blocksByHashes({ ids }) {
321
+ try {
322
+ const responses = await Promise.all(ids.map((id) => this.request(`blocks/${id.toString()}`)));
323
+ return responses.map((response) => {
324
+ if (!response.epoch || !response.epoch_slot || !response.height || !response.slot || !response.block_vrf) {
325
+ throw new core_1.ProviderError(core_1.ProviderFailure.Unknown, null, 'Queried unsupported block');
326
+ }
327
+ return {
328
+ confirmations: response.confirmations,
329
+ date: new Date(response.time * 1000),
330
+ epoch: core_1.Cardano.EpochNo(response.epoch),
331
+ epochSlot: response.epoch_slot,
332
+ fees: BigInt(response.fees || '0'),
333
+ header: {
334
+ blockNo: core_1.Cardano.BlockNo(response.height),
335
+ hash: core_1.Cardano.BlockId(response.hash),
336
+ slot: core_1.Cardano.Slot(response.slot)
337
+ },
338
+ nextBlock: response.next_block ? core_1.Cardano.BlockId(response.next_block) : undefined,
339
+ previousBlock: response.previous_block ? core_1.Cardano.BlockId(response.previous_block) : undefined,
340
+ size: core_1.Cardano.BlockSize(response.size),
341
+ slotLeader: core_1.Cardano.SlotLeader(response.slot_leader),
342
+ totalOutput: BigInt(response.output || '0'),
343
+ txCount: response.tx_count,
344
+ vrf: core_1.Cardano.VrfVkBech32(response.block_vrf)
345
+ };
346
+ });
347
+ }
348
+ catch (error) {
349
+ throw this.toProviderError(error);
350
+ }
351
+ }
352
+ async transactionsByHashes({ ids }) {
353
+ try {
354
+ return Promise.all(ids.map((id) => this.fetchTransaction(id)));
355
+ }
356
+ catch (error) {
357
+ throw this.toProviderError(error);
358
+ }
359
+ }
360
+ async transactionsByAddresses({ addresses, pagination, blockRange }) {
361
+ this.logger.info(`transactionsByAddresses: ${JSON.stringify(blockRange)} ${JSON.stringify(addresses)}`);
362
+ try {
363
+ const lowerBound = blockRange?.lowerBound ?? 0;
364
+ const upperBound = blockRange?.upperBound ?? exports.DB_MAX_SAFE_INTEGER;
365
+ const addressTransactions = await Promise.all(addresses.map(async (address) => (0, blockfrost_1.fetchSequentially)({
366
+ haveEnoughItems: blockRange?.lowerBound
367
+ ? (transactions) => transactions.length > 0 &&
368
+ transactions[transactions.length - 1].block_height < blockRange.lowerBound
369
+ : undefined,
370
+ request: (paginationQueryString) => {
371
+ let queryString = `addresses/${address}/transactions?${paginationQueryString}`;
372
+ if (blockRange?.lowerBound)
373
+ queryString += `&from=${blockRange.lowerBound.toString()}`;
374
+ if (blockRange?.upperBound)
375
+ queryString += `&to=${blockRange.upperBound.toString()}`;
376
+ return this.request(queryString);
377
+ }
378
+ })));
379
+ const allTransactions = addressTransactions.flat(1);
380
+ const ids = allTransactions
381
+ .filter(({ block_height }) => block_height >= lowerBound && block_height <= upperBound)
382
+ .sort((a, b) => a.block_height - b.block_height || a.tx_index - b.tx_index)
383
+ .map(({ tx_hash }) => core_1.Cardano.TransactionId(tx_hash))
384
+ .splice(pagination.startAt, pagination.limit);
385
+ const pageResults = await this.transactionsByHashes({ ids });
386
+ return { pageResults, totalResultCount: allTransactions.length };
387
+ }
388
+ catch (error) {
389
+ throw this.toProviderError(error);
390
+ }
391
+ }
392
+ mapTxBody({ collateralReturn, collaterals, fee, inputs, outputs, mint, proposalProcedures, validityInterval, votingProcedures, withdrawals, certificates }, inputSource) {
393
+ return {
394
+ ...(inputSource === core_1.Cardano.InputSource.collaterals
395
+ ? {
396
+ collateralReturn: outputs.length > 0 ? outputs[0] : undefined,
397
+ collaterals: inputs,
398
+ fee: BigInt(0),
399
+ inputs: [],
400
+ outputs: [],
401
+ totalCollateral: fee
402
+ }
403
+ : {
404
+ collateralReturn: collateralReturn ?? undefined,
405
+ collaterals,
406
+ fee,
407
+ inputs,
408
+ outputs
409
+ }),
410
+ certificates,
411
+ mint,
412
+ proposalProcedures,
413
+ validityInterval,
414
+ votingProcedures,
415
+ withdrawals
416
+ };
417
+ }
418
+ mapBlockHeader({ block, block_height, slot }) {
419
+ return {
420
+ blockNo: core_1.Cardano.BlockNo(block_height),
421
+ hash: core_1.Cardano.BlockId(block),
422
+ slot: core_1.Cardano.Slot(slot)
423
+ };
424
+ }
425
+ fetchUtxos(id) {
426
+ return this.request(`txs/${id}/utxos`);
427
+ }
428
+ }
429
+ exports.BlockfrostChainHistoryProvider = BlockfrostChainHistoryProvider;
430
+ //# sourceMappingURL=BlockfrostChainHistoryProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockfrostChainHistoryProvider.js","sourceRoot":"","sources":["../../../src/ChainHistoryProvider/BlockfrostChainHistoryProvider.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ export * from './BlockfrostChainHistoryProvider';
1
2
  export * from './chainHistoryHttpProvider';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ChainHistoryProvider/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ChainHistoryProvider/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC"}
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./BlockfrostChainHistoryProvider"), exports);
17
18
  __exportStar(require("./chainHistoryHttpProvider"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ChainHistoryProvider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ChainHistoryProvider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD;AACjD,6DAA2C"}
@@ -0,0 +1,10 @@
1
+ import { BlockfrostClient } from '../blockfrost/BlockfrostClient';
2
+ import { BlockfrostProvider } from '../blockfrost/BlockfrostProvider';
3
+ import { DRepInfo, DRepProvider, GetDRepInfoArgs, GetDRepsInfoArgs } from '@cardano-sdk/core';
4
+ import { Logger } from 'ts-log';
5
+ export declare class BlockfrostDRepProvider extends BlockfrostProvider implements DRepProvider {
6
+ constructor(client: BlockfrostClient, logger: Logger);
7
+ getDRepInfo({ id }: GetDRepInfoArgs): Promise<DRepInfo>;
8
+ getDRepsInfo({ ids }: GetDRepsInfoArgs): Promise<DRepInfo[]>;
9
+ }
10
+ //# sourceMappingURL=BlockfrostDRepProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockfrostDRepProvider.d.ts","sourceRoot":"","sources":["../../../src/DRepProvider/BlockfrostDRepProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAW,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,qBAAa,sBAAuB,SAAQ,kBAAmB,YAAW,YAAY;gBACxE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI9C,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsB7D,YAAY,CAAC,EAAE,GAAG,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAG7D"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockfrostDRepProvider = void 0;
4
+ const BlockfrostProvider_1 = require("../blockfrost/BlockfrostProvider");
5
+ const core_1 = require("@cardano-sdk/core");
6
+ class BlockfrostDRepProvider extends BlockfrostProvider_1.BlockfrostProvider {
7
+ constructor(client, logger) {
8
+ super(client, logger);
9
+ }
10
+ async getDRepInfo({ id }) {
11
+ try {
12
+ const cip105DRepId = core_1.Cardano.DRepID.toCip105DRepID(id);
13
+ const response = await this.request(`governance/dreps/${cip105DRepId.toString()}`);
14
+ const amount = BigInt(response.amount);
15
+ const activeEpoch = response.active_epoch ? core_1.Cardano.EpochNo(response.active_epoch) : undefined;
16
+ const active = response.active;
17
+ const hasScript = response.has_script;
18
+ return {
19
+ active,
20
+ activeEpoch,
21
+ amount,
22
+ hasScript,
23
+ id
24
+ };
25
+ }
26
+ catch (error) {
27
+ this.logger.error('getDRep failed', id);
28
+ throw this.toProviderError(error);
29
+ }
30
+ }
31
+ getDRepsInfo({ ids }) {
32
+ return Promise.all(ids.map((id) => this.getDRepInfo({ id })));
33
+ }
34
+ }
35
+ exports.BlockfrostDRepProvider = BlockfrostDRepProvider;
36
+ //# sourceMappingURL=BlockfrostDRepProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockfrostDRepProvider.js","sourceRoot":"","sources":["../../../src/DRepProvider/BlockfrostDRepProvider.ts"],"names":[],"mappings":";;;AACA,yEAAsE;AACtE,4CAAuG;AAIvG,MAAa,sBAAuB,SAAQ,uCAAkB;IAC5D,YAAY,MAAwB,EAAE,MAAc;QAClD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAmB;QACvC,IAAI;YACF,MAAM,YAAY,GAAG,cAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAoB,oBAAoB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACtG,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,cAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/F,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC;YAEtC,OAAO;gBACL,MAAM;gBACN,WAAW;gBACX,MAAM;gBACN,SAAS;gBACT,EAAE;aACH,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAED,YAAY,CAAC,EAAE,GAAG,EAAoB;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;CACF;AA9BD,wDA8BC"}
@@ -0,0 +1,2 @@
1
+ export * from './BlockfrostDRepProvider';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/DRepProvider/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./BlockfrostDRepProvider"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DRepProvider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
@@ -0,0 +1,17 @@
1
+ import { BlockfrostClient } from '../blockfrost/BlockfrostClient';
2
+ import { BlockfrostProvider } from '../blockfrost/BlockfrostProvider';
3
+ import { Cardano, EraSummary, NetworkInfoProvider, StakeSummary, SupplySummary } from '@cardano-sdk/core';
4
+ import { Logger } from 'ts-log';
5
+ import type { Schemas } from '@blockfrost/blockfrost-js/lib/types/open-api';
6
+ export declare class BlockfrostNetworkInfoProvider extends BlockfrostProvider implements NetworkInfoProvider {
7
+ constructor(client: BlockfrostClient, logger: Logger);
8
+ stake(): Promise<StakeSummary>;
9
+ lovelaceSupply(): Promise<SupplySummary>;
10
+ ledgerTip(): Promise<Cardano.Tip>;
11
+ protocolParameters(): Promise<Cardano.ProtocolParameters>;
12
+ genesisParameters(): Promise<Cardano.CompactGenesis>;
13
+ protected fetchEraSummaries(): Promise<Schemas['network-eras']>;
14
+ protected parseEraSummaries(summaries: Schemas['network-eras'], systemStart: Date): Promise<EraSummary[]>;
15
+ eraSummaries(): Promise<EraSummary[]>;
16
+ }
17
+ //# sourceMappingURL=BlockfrostNetworkInfoProvider.d.ts.map