-
Notifications
You must be signed in to change notification settings - Fork 54
/
AssetBuilder.ts
35 lines (31 loc) · 1.14 KB
/
AssetBuilder.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { Cardano } from '@cardano-sdk/core';
import { LastMintTxModel, MultiAssetModel } from './types';
import { Logger } from 'ts-log';
import { Pool } from 'pg';
import Queries from './queries';
export class AssetBuilder {
#db: Pool;
#logger: Logger;
constructor(db: Pool, logger: Logger) {
this.#db = db;
this.#logger = logger;
}
public async queryLastMintTx(policyId: Cardano.PolicyId, name: Cardano.AssetName) {
this.#logger.debug('About to query last nft mint tx for asset', { name, policyId });
const result = await this.#db.query<LastMintTxModel>({
name: 'nft_last_mint_tx',
text: Queries.findLastNftMintTx,
values: [Buffer.from(policyId, 'hex'), Buffer.from(name, 'hex')]
});
return result.rows[0];
}
public async queryMultiAsset(policyId: Cardano.PolicyId, name: Cardano.AssetName) {
this.#logger.debug('About to query multi asset', { name, policyId });
const result = await this.#db.query<MultiAssetModel>({
name: 'find_multi_asset',
text: Queries.findMultiAsset,
values: [Buffer.from(policyId, 'hex'), Buffer.from(name, 'hex')]
});
return result.rows[0];
}
}