@effectai/sdk
Version:
Effect Network Javscript/Typescript SDK (for [https://effect.network](https://effect.network))
42 lines • 1.51 kB
JavaScript
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