aftermath-ts-sdk
Version:
Aftermath TypeScript SDK
44 lines (43 loc) • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NftAmmApiCasting = void 0;
const utils_1 = require("../../../general/utils");
const coin_1 = require("../../coin");
const poolsApiCasting_1 = require("../../pools/api/poolsApiCasting");
class NftAmmApiCasting {
}
exports.NftAmmApiCasting = NftAmmApiCasting;
// =========================================================================
// Public Methods
// =========================================================================
// =========================================================================
// Objects
// =========================================================================
NftAmmApiCasting.marketObjectFromSuiObject = (suiObject) => {
const objectId = utils_1.Helpers.getObjectId(suiObject);
const marketType = utils_1.Helpers.getObjectType(suiObject);
if (!marketType)
throw new Error("no object type found");
const fields = utils_1.Helpers.getObjectFields(suiObject);
const pool = poolsApiCasting_1.PoolsApiCasting.poolObjectFromSuiObject(fields.pool);
const fractionalizedCoinType = coin_1.Coin.getInnerCoinType(fields.supply.type);
const innerMarketTypes = coin_1.Coin.getInnerCoinType(marketType);
const genericTypes = innerMarketTypes.replaceAll(" ", "").split(",");
const assetCoinType = genericTypes[2];
const nftType = genericTypes[3];
return {
objectId,
pool,
objectType: marketType,
nftsTable: {
objectId: fields.nfts.fields.id.id,
size: BigInt(fields.nfts.fields.size),
},
fractionalizedSupply: BigInt(fields.supply.fields.value),
fractionalizedCoinAmount: BigInt(fields.fractions_amount),
fractionalizedCoinType,
assetCoinType,
lpCoinType: pool.lpCoinType,
nftType,
};
};