aftermath-ts-sdk
Version:
Aftermath TypeScript SDK
182 lines (181 loc) • 7.42 kB
JavaScript
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SuiFrensApiCasting = void 0;
const utils_1 = require("../../../general/utils");
class SuiFrensApiCasting {
}
exports.SuiFrensApiCasting = SuiFrensApiCasting;
_a = SuiFrensApiCasting;
// =========================================================================
// Objects
// =========================================================================
// TODO: handle leading 0s for ALL castings
SuiFrensApiCasting.capyLabsAppObjectFromSuiObjectResponse = (data) => {
const objectType = utils_1.Helpers.getObjectType(data);
const fields = utils_1.Helpers.getObjectFields(data);
return {
objectType,
objectId: utils_1.Helpers.getObjectId(data),
mixingLimit: BigInt(fields.mixing_limit),
coolDownPeriodEpochs: BigInt(fields.cool_down_period),
mixingPrice: BigInt(fields.mixing_price),
suiProfits: BigInt(fields.profits),
};
};
SuiFrensApiCasting.partialSuiFrenObjectFromSuiObjectResponse = (data) => {
const objectType = utils_1.Helpers.getObjectType(data);
const fields = utils_1.Helpers.getObjectFields(data);
const display = utils_1.Helpers.getObjectDisplay(data)
.data;
return {
objectType,
objectId: utils_1.Helpers.getObjectId(data),
generation: BigInt(fields.generation),
birthdate: Number(fields.birthdate),
cohort: BigInt(fields.cohort),
genes: fields.genes.map((gene) => BigInt(gene)),
attributes: {
skin: fields.attributes[0],
main: fields.attributes[1],
secondary: fields.attributes[2],
expression: fields.attributes[3],
ears: fields.attributes[4],
},
birthLocation: fields.birth_location,
display: {
link: display.link,
imageUrl: display.image_url,
description: display.description,
projectUrl: display.project_url,
},
};
};
SuiFrensApiCasting.partialSuiFrenObjectFromStakedSuiFrenMetadataV1ObjectSuiObjectResponse = (data) => {
const fields = utils_1.Helpers.getObjectFields(data);
const display = utils_1.Helpers.getObjectDisplay(data)
.data;
return {
objectType: fields.suifren_type,
objectId: utils_1.Helpers.addLeadingZeroesToType(fields.suifren_id),
generation: BigInt(fields.generation),
birthdate: Number(fields.birthdate),
cohort: BigInt(fields.cohort),
genes: fields.genes.map((gene) => BigInt(gene)),
attributes: {
skin: fields.attributes[0],
main: fields.attributes[1],
secondary: fields.attributes[2],
expression: fields.attributes[3],
ears: fields.attributes[4],
},
birthLocation: fields.birth_location,
display: {
link: display.link,
imageUrl: display.image_url.replace("mainnet", "testnet"),
description: display.description,
projectUrl: display.project_url,
},
};
};
SuiFrensApiCasting.stakedSuiFrenMetadataV1ObjectFromSuiObjectResponse = (data) => {
const objectType = utils_1.Helpers.getObjectType(data);
const fields = utils_1.Helpers.getObjectFields(data);
return {
objectType,
objectId: utils_1.Helpers.getObjectId(data),
suiFrenId: utils_1.Helpers.addLeadingZeroesToType(fields.suifren_id),
collectedFees: BigInt(fields.collected_fees),
autoStakeFees: fields.auto_stake_fees,
mixFee: BigInt(fields.mix_fee),
feeIncrementPerMix: BigInt(fields.fee_increment_per_mix),
minRemainingMixesToKeep: BigInt(fields.min_remaining_mixes_to_keep),
};
};
SuiFrensApiCasting.partialSuiFrenAndStakedSuiFrenMetadataV1ObjectFromSuiObjectResponse = (data) => {
return {
stakedSuiFrenMetadata: _a.stakedSuiFrenMetadataV1ObjectFromSuiObjectResponse(data),
partialSuiFren: _a.partialSuiFrenObjectFromStakedSuiFrenMetadataV1ObjectSuiObjectResponse(data),
};
};
SuiFrensApiCasting.stakedSuiFrenPositionFromSuiObjectResponse = (data) => {
const objectType = utils_1.Helpers.getObjectType(data);
const fields = utils_1.Helpers.getObjectFields(data);
return {
objectType,
objectId: utils_1.Helpers.getObjectId(data),
suiFrenId: utils_1.Helpers.addLeadingZeroesToType(fields.suifren_id),
};
};
SuiFrensApiCasting.suiFrenVaultStateV1ObjectFromSuiObjectResponse = (data) => {
const objectType = utils_1.Helpers.getObjectType(data);
const fields = utils_1.Helpers.getObjectFields(data);
return {
objectType,
objectId: utils_1.Helpers.getObjectId(data),
totalMixes: BigInt(fields.mixed),
stakedSuiFrens: BigInt(fields.suifrens_metadata.fields.size),
};
};
SuiFrensApiCasting.accessoryObjectFromSuiObjectResponse = (data) => {
const objectType = utils_1.Helpers.getObjectType(data);
const fields = utils_1.Helpers.getObjectFields(data);
const display = utils_1.Helpers.getObjectDisplay(data)
.data;
return {
objectType,
objectId: utils_1.Helpers.getObjectId(data),
name: fields.name,
type: fields.type,
imageUrl: display.image_url,
};
};
// =========================================================================
// Events
// =========================================================================
SuiFrensApiCasting.harvestSuiFrenFeesEventFromOnChain = (eventOnChain) => {
const fields = eventOnChain.parsedJson;
return {
harvester: utils_1.Helpers.addLeadingZeroesToType(fields.issuer),
fees: BigInt(fields.fees),
timestamp: eventOnChain.timestampMs,
txnDigest: eventOnChain.id.txDigest,
type: eventOnChain.type,
};
};
SuiFrensApiCasting.mixSuiFrensEventFromOnChain = (eventOnChain) => {
const fields = eventOnChain.parsedJson;
return {
mixer: utils_1.Helpers.addLeadingZeroesToType(fields.issuer),
parentOneId: utils_1.Helpers.addLeadingZeroesToType(fields.parent_one_id),
parentTwoId: utils_1.Helpers.addLeadingZeroesToType(fields.parent_two_id),
childId: utils_1.Helpers.addLeadingZeroesToType(fields.suifren_id),
fee: BigInt(fields.fee),
timestamp: eventOnChain.timestampMs,
txnDigest: eventOnChain.id.txDigest,
type: eventOnChain.type,
};
};
SuiFrensApiCasting.stakeSuiFrenEventFromOnChain = (eventOnChain) => {
const fields = eventOnChain.parsedJson;
return {
staker: utils_1.Helpers.addLeadingZeroesToType(fields.issuer),
suiFrenId: utils_1.Helpers.addLeadingZeroesToType(fields.suifren_id),
// TODO: generalize casting of event types with passing of
// timestamp and txnDigest (create wrapper)
timestamp: eventOnChain.timestampMs,
txnDigest: eventOnChain.id.txDigest,
type: eventOnChain.type,
};
};
SuiFrensApiCasting.unstakeSuiFrenEventFromOnChain = (eventOnChain) => {
const fields = eventOnChain.parsedJson;
return {
unstaker: utils_1.Helpers.addLeadingZeroesToType(fields.issuer),
suiFrenId: utils_1.Helpers.addLeadingZeroesToType(fields.suifren_id),
fees: BigInt(fields.fees),
timestamp: eventOnChain.timestampMs,
txnDigest: eventOnChain.id.txDigest,
type: eventOnChain.type,
};
};