UNPKG

aftermath-ts-sdk

Version:
182 lines (181 loc) 7.42 kB
"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, }; };