Skip to content

Commit 0f929d3

Browse files
committed
fixup! feat(cardano-services): implement missing Blockfrost providers features and tests
1 parent 8794175 commit 0f929d3

File tree

3 files changed

+29
-33
lines changed

3 files changed

+29
-33
lines changed

packages/cardano-services/src/ChainHistory/BlockrostChainHistoryProvider/BlockfrostChainHistoryProvider.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,10 @@ export class BlockfrostChainHistoryProvider extends BlockfrostProvider implement
194194
const metadata = await this.fetchJsonMetadata(hash);
195195
const certificates = await this.fetchCertificates(response);
196196
const withdrawals = await this.fetchWithdrawals(response);
197+
const inputSource: Cardano.InputSource = response.valid_contract
198+
? Cardano.InputSource.inputs
199+
: Cardano.InputSource.collaterals;
200+
197201
return {
198202
auxiliaryData: metadata
199203
? {
@@ -221,11 +225,11 @@ export class BlockfrostChainHistoryProvider extends BlockfrostProvider implement
221225
},
222226
id: hash,
223227
index: response.index,
224-
inputSource: inputs && inputs.length > 0 ? Cardano.InputSource.inputs : Cardano.InputSource.collaterals,
228+
inputSource,
225229
txSize: response.size,
226230
witness: {
227231
redeemers: await this.fetchRedeemers(response),
228-
signatures: new Map() // not available in blockfrost @todo check again
232+
signatures: new Map() // not available in blockfrost
229233
}
230234
};
231235
} catch (error) {

packages/e2e/test/blockfrost/getAsset.test.ts

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
1-
import * as envalid from 'envalid';
1+
import { BlockfrostAssetProvider, util } from '@cardano-sdk/cardano-services';
22
import { Cardano } from '@cardano-sdk/core';
3-
import { assetProviderFactory } from '../../src';
43
import { logger } from '@cardano-sdk/util-dev';
54

6-
// Verify environment.
7-
export const env = envalid.cleanEnv(process.env, {
8-
ASSET_PROVIDER: envalid.str(),
9-
ASSET_PROVIDER_PARAMS: envalid.json({ default: {} })
10-
});
11-
12-
describe('blockfrostAssetProvider', () => {
5+
describe('BlockfrostAssetProvider', () => {
136
test('getAsset', async () => {
14-
const asset = await (
15-
await assetProviderFactory.create(env.ASSET_PROVIDER, env.ASSET_PROVIDER_PARAMS, logger)
16-
).getAsset({
7+
const assetProvider = new BlockfrostAssetProvider({ blockfrost: util.getBlockfrostApi(), logger });
8+
const asset = await assetProvider.getAsset({
179
assetId: Cardano.AssetId(
1810
'b27160f0c50a9cf168bf945dcbfcabbfbee5c7a801e7b467093b41534d6574616c4d6f6e7374657230303036'
1911
),

packages/e2e/test/blockfrost/queryTransactions.test.ts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
1-
import * as envalid from 'envalid';
1+
import { BlockfrostChainHistoryProvider, util } from '@cardano-sdk/cardano-services';
22
import { Cardano, ChainHistoryProvider } from '@cardano-sdk/core';
3-
import { chainHistoryProviderFactory } from '../../src/factories';
43
import { logger } from '@cardano-sdk/util-dev';
54

6-
// Verify environment.
7-
export const env = envalid.cleanEnv(process.env, {
8-
CHAIN_HISTORY_PROVIDER: envalid.str(),
9-
CHAIN_HISTORY_PROVIDER_PARAMS: envalid.json({ default: {} })
10-
});
11-
12-
describe.only('blockfrostChainHistoryProvider', () => {
5+
describe.only('BlockfrostChainHistoryProvider', () => {
136
let chainHistoryProvider: ChainHistoryProvider;
14-
7+
let blockfrost;
158
beforeAll(async () => {
16-
chainHistoryProvider = await chainHistoryProviderFactory.create(
17-
env.CHAIN_HISTORY_PROVIDER,
18-
env.CHAIN_HISTORY_PROVIDER_PARAMS,
9+
blockfrost = util.getBlockfrostApi();
10+
chainHistoryProvider = new BlockfrostChainHistoryProvider({
11+
blockfrost,
1912
logger
20-
);
13+
});
2114
});
2215

2316
describe('transactionsByHashes', () => {
@@ -48,6 +41,14 @@ describe.only('blockfrostChainHistoryProvider', () => {
4841
txId: 'b6b1692fd22680e06b136a013f3867eb2b73125671fe4cbe61037f0a5e17ccaa'
4942
});
5043
});
44+
45+
it('has collaterals for failed contract', async () => {
46+
const [tx] = await chainHistoryProvider.transactionsByHashes({
47+
ids: [Cardano.TransactionId('3de3e581ead2b38d6ba1a82a282501e4447d7b6ae28e5fb4a340b9416d5ba6c5')]
48+
});
49+
expect(tx.inputSource).toBe(Cardano.InputSource.collaterals);
50+
});
51+
5152
it('has withdrawals', async () => {
5253
const [tx] = await chainHistoryProvider.transactionsByHashes({
5354
ids: [Cardano.TransactionId('5929a59b9bebad1622f021d13b3d143d88cc92cf2400472e36ed8dcdf598a7fa')]
@@ -277,18 +278,17 @@ describe.only('blockfrostChainHistoryProvider', () => {
277278
expect(response.totalResultCount).toBe(0);
278279
});
279280

280-
// @todo find a script failure in preprod
281-
it.skip('queries successfully invalid transaction (script failure)', async () => {
281+
it('queries successfully invalid transaction (script failure)', async () => {
282282
const response = await chainHistoryProvider.transactionsByAddresses({
283-
addresses: [Cardano.PaymentAddress('addr_test1vr8nl4u0u6fmtfnawx2rxfz95dy7m46t6dhzdftp2uha87syeufdg')],
283+
addresses: [Cardano.PaymentAddress('addr_test1vqtcml25xg7p6udz6tvyulcnxeysswq8et7r48k8fdzk5kgwlyqxc')],
284284
pagination: { limit: 20, startAt: 0 }
285285
});
286286

287287
const invalidTx = response.pageResults.find(
288-
(tx) => tx.id === Cardano.TransactionId('FHnt4NL7yPYH2vP2FLEfH2pt3K6meM7fgtjRiLBidaqpP5ogPzxLNsZy68e1KdW')
288+
(tx) => tx.id === Cardano.TransactionId('3de3e581ead2b38d6ba1a82a282501e4447d7b6ae28e5fb4a340b9416d5ba6c5')
289289
);
290290
expect(invalidTx).toBeDefined();
291-
expect(invalidTx?.body.outputs.length).toEqual(0);
291+
expect(invalidTx?.inputSource).toBe(Cardano.InputSource.collaterals);
292292
});
293293

294294
it('returns transactions starting from blockRange param', async () => {

0 commit comments

Comments
 (0)