UNPKG

@effectai/sdk

Version:

Effect Network Javscript/Typescript SDK (for [https://effect.network](https://effect.network))

42 lines 1.51 kB
import { UInt128 } from "@wharfkit/antelope"; import { ObjectSchema, deserialize } from "atomicassets"; import { getSchema } from "./getSchema"; export const deserializeAsset = (asset, schema) => { const objectSchema = ObjectSchema(schema.format); const mutable_deserialized_data = deserialize(asset.mutable_serialized_data, objectSchema); const immutable_deserialized_data = deserialize(asset.immutable_serialized_data, objectSchema); return { ...asset, immutable_deserialized_data, mutable_deserialized_data, }; }; export const getAsset = async ({ client, account, assetId, doDeserializeAsset = true, }) => { try { const { provider } = client; const { atomicContract } = client.network.config.atomic; const { rows } = await provider.v1.chain.get_table_rows({ code: atomicContract, scope: account, table: "assets", limit: 1, lower_bound: UInt128.from(assetId), upper_bound: UInt128.from(assetId), }); const [asset] = rows; if (doDeserializeAsset) { const schema = await getSchema({ client, collectionName: asset.collection_name, schemaName: asset.schema_name, }); return deserializeAsset(asset, schema); } return asset; } catch (error) { console.error(error); throw error; } }; //# sourceMappingURL=getAsset.js.map