Skip to content

Commit

Permalink
feat(core): add util to create AssetId from PolicyId and AssetName
Browse files Browse the repository at this point in the history
  • Loading branch information
lgobbi-atix committed May 20, 2022
1 parent 5fa9d44 commit 99043cd
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
9 changes: 9 additions & 0 deletions packages/core/src/Asset/util/assetId.ts
Expand Up @@ -10,6 +10,15 @@ export const assetNameFromAssetId = (assetId: AssetId): AssetName => AssetName(a
export const createAssetId = (scriptHash: CSL.ScriptHash, assetName: CSL.AssetName): AssetId =>
AssetId(util.bytesToHex(scriptHash.to_bytes()) + util.bytesToHex(assetName.name()).toString());

/**
* @returns {AssetId} concatenated policy id and asset name
*/
export const assetIdFromPolicyAndName = (policyId: PolicyId, assetName: AssetName): AssetId =>
createAssetId(
CSL.ScriptHash.from_bytes(Buffer.from(policyId, 'hex')),
CSL.AssetName.new(Buffer.from(assetName, 'hex'))
);

export const parseAssetId = (assetId: AssetId) => {
const policyId = policyIdFromAssetId(assetId);
const assetName = assetNameFromAssetId(assetId);
Expand Down
16 changes: 15 additions & 1 deletion packages/core/test/Asset/util/assetId.test.ts
@@ -1,5 +1,11 @@
import { AssetId } from '../../../src/Cardano';
import { createAssetId, parseAssetId } from '../../../src/Asset/util';
import {
assetIdFromPolicyAndName,
assetNameFromAssetId,
createAssetId,
parseAssetId,
policyIdFromAssetId
} from '../../../src/Asset/util';

describe('Asset', () => {
describe('util', () => {
Expand All @@ -12,5 +18,13 @@ describe('Asset', () => {
);
expect(createAssetId(tsla.scriptHash, tsla.assetName)).toEqual(assetId);
});
it('policyIdFromAssetId, assetNameFromAssetId and assetIdFromPolicyAndName', async () => {
const assetId = AssetId('659f2917fb63f12b33667463ee575eeac1845bbc736b9c0bbc40ba8254534c41');
const [policyId, assetName] = [policyIdFromAssetId(assetId), assetNameFromAssetId(assetId)];

expect(policyId).toEqual('659f2917fb63f12b33667463ee575eeac1845bbc736b9c0bbc40ba82');
expect(assetName).toEqual('54534c41');
expect(assetIdFromPolicyAndName(policyId, assetName)).toEqual(assetId);
});
});
});

0 comments on commit 99043cd

Please sign in to comment.