@ixily/activ
Version:
Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.
361 lines • 16.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActivV4Module = void 0;
const config_module_1 = require("./config.module");
const contract_module_1 = require("./contract.module");
const crypto_ideas_module_1 = require("./crypto-ideas.module");
const lit_module_1 = require("./lit.module");
const provable_ideas_module_1 = require("./provable-ideas.module");
const strategy_chain_module_1 = require("./strategy-chain.module");
const version_json_1 = require("../../../version.json");
const version_contract_db_json_1 = require("../../../version-contract-db.json");
// temporary
const migration_v3_module_1 = require("./migration-v3.module");
const __1 = require("../../");
const contracts_1 = require("../../constants/chunks/contracts");
const query_views_module_1 = require("./query-views.module");
const config = config_module_1.ConfigModule.config;
const listContractChains = contract_module_1.ContractModule.listBlockchainNetworks;
const listContractsForChain = contract_module_1.ContractModule.listContractsForNetwork;
const selectChainContract = contract_module_1.ContractModule.changeToContract;
const getBlockchainContract = contract_module_1.ContractModule.getBlockchainContract;
const getGateContract = () => contract_module_1.ContractModule.getGate();
const getIdeaByNftId = async (ideaNft, decrypt = true, inflateImages = false, contract) => {
contract = contract_module_1.ContractModule.thisOrGet(contract);
const key = `getIdeaByNftId_${ideaNft}_${decrypt}`;
const { data } = await __1.CacheService.getData({
contract: contract?.gate,
key,
init: async () => {
return provable_ideas_module_1.ProvableIdeasModule.general.getIdeaByNftId(ideaNft, decrypt, inflateImages, contract);
},
});
if (migration_v3_module_1.MigrationV3TemporaryModule.isCloseIdea(data)) {
await __1.CacheService.updateData({
key,
contract: contract?.gate,
data,
expirationInSeconds: __1.skipExpirationInSeconds,
});
}
return data;
};
const getIdeaMetadataByKeys = async (strategyKey, ideaKey, stageKey, creator, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getIdeaMetadataByKeys(strategyKey, ideaKey, stageKey, creator, contract);
const getIdeaNftIdByKeys = async (creator, strategyKey, ideaKey, stageKey, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getIdeaNftIdByKeys(creator, strategyKey, ideaKey, stageKey, contract);
const getIdeaByKeys = async (strategyKey, ideaKey, stageKey, creator, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getIdeaByKeys(strategyKey, ideaKey, stageKey, creator, contract);
// const listAllStrategies = async (contract?: IContract): Promise<any[]> =>
// ProvableIdeasModule.general.listAllStrategies(contract)
const updateCurrentContractDb = async (contract) => {
contract = contract_module_1.ContractModule.thisOrGet(contract);
await __1.MessModule.updateContractDb(contract);
};
const serveContractsDb = async (chainContracts) => {
return __1.MessModule.serveContractsDb(chainContracts);
};
const readEvents = async () => provable_ideas_module_1.ProvableIdeasModule.canonical.readEvents();
const listStrategyReferences = async (creator, contract) => provable_ideas_module_1.ProvableIdeasModule.canonical.listStrategyReferences(creator, contract);
const getStrategyIdeasCanonical = async (strategyReference, creator, contract) => provable_ideas_module_1.ProvableIdeasModule.canonical.getStrategyIdeasCanonical(strategyReference, creator, contract);
// const listCreatorAndStrategyReferences = async (
// creator?: string,
// contract?: IContract,
// ): Promise<IOrderedReference> =>
// ProvableIdeasModule.canonical.listCreatorAndStrategyReferences(
// creator,
// contract,
// )
const listStrategyReferencesCanonical = async (creator, contract) => provable_ideas_module_1.ProvableIdeasModule.canonical.listStrategyReferencesCanonical(creator, contract);
const listStrategiesDetailsCanonical = async (creator, contract) => provable_ideas_module_1.ProvableIdeasModule.canonical.listStrategiesDetailsCanonical(creator, contract);
const listAllIdeasCanonical = async (creator, contract) => provable_ideas_module_1.ProvableIdeasModule.canonical.listIdeasCanonical(creator, contract);
// We can proide the creator address to get from the strategies otherwise it defaults to the current user
const listStrategiesByCreator = async (creator, contract) => provable_ideas_module_1.ProvableIdeasModule.general.listStrategies(creator, contract);
/*
const getAllIdeas = async (
creator?: string,
contract?: IContract,
): Promise<any[]> => {
*/
const getMetadataByBlockId = async (blockId, decryptIdea, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getMetadataByBlockId(blockId, decryptIdea, contract);
const listStrategyIdeasByCreatorAndReference = async (strategyReference, creator, contract) => {
const { data } = await __1.CacheService.getData({
contract: contract?.gate,
key: `listIdeas_${strategyReference}`,
init: async () => {
return provable_ideas_module_1.ProvableIdeasModule.general.listIdeas(strategyReference, creator, contract);
},
});
return data;
};
const listStrategyIdeasStagesByCreatorAndReference = async (strategyReference, ideaKey, creator, contract) => provable_ideas_module_1.ProvableIdeasModule.general.listStages(strategyReference, ideaKey, creator, contract);
const getCurrentStrategyTickers = async (strategyChainOrStrategyKey, creator, contract) => {
const { data } = await __1.CacheService.getData({
contract: contract?.gate,
key: `getCurrentStrategyTickers_${strategyChainOrStrategyKey?.strategyKey ||
strategyChainOrStrategyKey}`,
init: async () => {
return provable_ideas_module_1.ProvableIdeasModule.general.getCurrentStrategyTickers(strategyChainOrStrategyKey, creator, contract);
},
});
return data;
};
const getStrategyChain = async (strategyKey, creator, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getStrategyChain(strategyKey, creator, contract);
const getValidatedStrategyChain = async (strategyKey, creator, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getValidatedStrategyChain(strategyKey, creator, contract);
const getStrategyMetadata = async (strategyChain, strategyKey, creator, contract) => {
if (strategyChain === undefined) {
strategyChain = await getValidatedStrategyChain(strategyKey, creator, contract);
}
let strategyMetadata = undefined;
let reverseSeachIndex = 1;
while (strategyMetadata === undefined) {
const lastIdea = strategyChain.ideas[strategyChain.ideas.length - reverseSeachIndex];
strategyMetadata =
lastIdea.stages[lastIdea.stages.length - 1].ideaStage.strategy;
}
return strategyMetadata;
};
// const getOwnedByNfts = async (
// owner?: string,
// contract?: IContract,
// ): Promise<any> => ProvableIdeasModule.general.getOwnedByNfts(owner, contract)
//
// const getCreatedByNfts = async (
// creator?: string,
// contract?: IContract,
// ): Promise<number[]> =>
// ProvableIdeasModule.general.getCreatedByNfts(creator, contract)
/*
* Get all ideas created by a wallet address user
*
* creator defaults to the caller
*
* @param {string} creator
* @param {number} page
* @param {number} limit
* @param {Contract} contract
* @returns {Promise<any[]>}
*/
// const getCreatedByIdeas = async (
// page: number = 1,
// limit: number = 5,
// creator?: string,
// contract?: IContract,
// ): Promise<IPaging<IOpenSeaMetadata>> =>
// ProvableIdeasModule.general.getCreatedByIdeas(
// creator,
// page,
// limit,
// undefined,
// contract,
// )
const getMyIdeas = async (page = 1, limit = 5, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getCreatedByIdeas(undefined, page, limit, undefined, contract);
// const getMyIdeasByFilter = async (
// page: number = 1,
// limit: number = 5,
// filterIdeaKind: ITradeIdeaIdeaKind,
// contract?: IContract,
// ): Promise<IPaging<any>> =>
// ProvableIdeasModule.general.getCreatedByIdeas(
// undefined,
// page,
// limit,
// filterIdeaKind,
// contract,
// )
/*
* Get all ideas owned by a wallet address user
*
* creator defaults to the caller
*
* @param {string} creator
* @param {number} page
* @param {number} limit
* @param {Contract} contract
* @returns {Promise<any[]>}
*/
// const getOwnedByIdeas = async (
// page: number = 1,
// limit: number = 5,
// creator?: string,
// contract?: IContract,
// ): Promise<IPaging<any>> =>
// ProvableIdeasModule.general.getOwnedByIdeas(
// creator,
// page,
// limit,
// undefined,
// contract,
// )
const getAllIdeasUserCanSee = async (page = 1, limit = 5, user, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getAllIdeasUserCanSee(user, page, limit, undefined, contract);
const getAllMyIdeas = async (page = 1, limit = 5, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getAllIdeasUserCanSee(undefined, page, limit, undefined, contract);
// const getAllPublicIdeas = async (
// page: number = 1,
// limit: number = 5,
// contract?: IContract,
// ): Promise<IPaging<any>> =>
// ProvableIdeasModule.general.getAllPublicClosedIdeas(page, limit, contract)
const testPricingAsset = async (request) => __1.PricingModule.testPricingAsset(request);
const settings = async (contract) => contract_module_1.ContractModule.getWalletSettings(contract);
const supportedChainNetworks = () => contracts_1.ACTIV_AVAILABLE_CHAINS;
const getEstimatedCosts = async (newIdea = true, clientInBehalf, contract) => {
contract = await contract_module_1.ContractModule.thisOrGet(contract);
return __1.OperationalCostModule.getEstimatedCosts(contract, clientInBehalf, newIdea);
};
const createPortfolioEntry = provable_ideas_module_1.ProvableIdeasModule?.clientOnly?.createPortfolioEntry;
const createPortfolio = provable_ideas_module_1.ProvableIdeasModule?.clientOnly?.createPortfolio;
const createIdea = provable_ideas_module_1.ProvableIdeasModule?.clientOnly?.createIdea;
const createNormalizedTradeIdea = provable_ideas_module_1.ProvableIdeasModule?.clientOnly?.createNormalizedTradeIdea;
const adjustIdea = provable_ideas_module_1.ProvableIdeasModule?.clientOnly?.adjustIdea;
const closeIdea = provable_ideas_module_1.ProvableIdeasModule?.clientOnly?.closeIdea;
const providerCreateIdea = provable_ideas_module_1.ProvableIdeasModule.providerOnly.providerCreateIdea;
const providerCloseIdea = provable_ideas_module_1.ProvableIdeasModule.providerOnly.providerCloseIdea;
const providerAdjustIdea = provable_ideas_module_1.ProvableIdeasModule.providerOnly.providerAdjustIdea;
const providerCreateFiatMintIdea = provable_ideas_module_1.ProvableIdeasModule.providerOnly.providerCreateFiatMintIdea;
const createIdeaFromFiatMint = provable_ideas_module_1.ProvableIdeasModule?.fiatMint?.createIdea;
const createNormalizedTradeIdeaFromFiatMint = provable_ideas_module_1.ProvableIdeasModule?.fiatMint?.createNormalizedTradeIdea;
const adjustIdeaFromFiatMint = provable_ideas_module_1.ProvableIdeasModule?.fiatMint?.adjustIdea;
const closeIdeaFromFiatMint = provable_ideas_module_1.ProvableIdeasModule?.fiatMint?.closeIdea;
const getCreatorOfNftIdea = async (nftId, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getCreatorOfNftIdea(nftId, contract);
const restoredIdeasWithPagination = crypto_ideas_module_1.CryptoIdeasModule.getRestoredIdeasByNftIdsWithPaginationAndFilter;
const restoreIdeaImages = crypto_ideas_module_1.CryptoIdeasModule.restoreImages;
const restoreIdeasImages = (ideas) => {
return Promise.all(ideas.map((idea) => restoreIdeaImages(idea)));
};
const getChronologicalIdeasFromStrategyChain = strategy_chain_module_1.StrategyChainModule.chronologicalIdeasFromChain;
const getActiveIdeasFromStrategyChain = strategy_chain_module_1.StrategyChainModule.getActiveIdeasFromChain;
const getExistingNftByStrategyRefAndTicker = provable_ideas_module_1.ProvableIdeasModule.general.getExistingNftByStrategyRefAndTicker;
const getPricingInfo = (tradeIdea) => provable_ideas_module_1.ProvableIdeasModule.general.getPricingInfo(tradeIdea.pricing, tradeIdea.idea.asset.ticker, tradeIdea.tracker, tradeIdea.devSettings?.croupierUrl);
const getVersion = () => {
return version_json_1.version;
};
const getContractDbVersion = () => {
return version_contract_db_json_1.contractDbVersion;
};
const giveIdeaAccessTo = (nftId, addresses, contract) => provable_ideas_module_1.ProvableIdeasModule.clientOnly.giveIdeaAccessTo(nftId, addresses, contract);
const getIdeaViewers = (nftId, contract) => provable_ideas_module_1.ProvableIdeasModule.general.getIdeaViewers(nftId, contract);
const authorizeProvider = (provider, contract) => provable_ideas_module_1.ProvableIdeasModule.clientOnly.authorizeProvider(provider, contract);
const revokeProvider = (provider, contract) => provable_ideas_module_1.ProvableIdeasModule.clientOnly.revokeProvider(provider, contract);
const authorizeCheck = (provider, contract) => provable_ideas_module_1.ProvableIdeasModule.clientOnly.authorizeCheck(provider, contract);
const providerCheck = (client, contract) => provable_ideas_module_1.ProvableIdeasModule.providerOnly.providerCheck(client, contract);
const getKeysFromIdea = (tradeIdea) => {
return {
strategyKey: tradeIdea.strategy.reference,
ideaKey: tradeIdea.content.ideaKey,
ideaStageKey: tradeIdea.content.ideaStageKey,
nftId: tradeIdea.nftId,
tradeIdea,
};
};
const isValidWalletAddress = (walletAddressList) => {
let globalCheck = true;
const checkerResponse = {};
for (const wallet of walletAddressList) {
if (wallet) {
checkerResponse[wallet] = __1.ethers.utils.isAddress(wallet);
if (!checkerResponse[wallet]) {
globalCheck = false;
}
}
}
return {
globalCheck,
checkerResponse,
};
};
const testLitActionsAvailability = lit_module_1.LitModule.testJS;
const listNetworks = () => contracts_1.ACTIV_LIVE_CHAINS;
// const listExchanges = () => PRICING_PROVIDERS
exports.ActivV4Module = {
settings,
supportedChainNetworks,
config,
//
getEstimatedCosts,
// adminCreateIdea,
createIdea,
createPortfolioEntry,
createPortfolio,
createNormalizedTradeIdea,
adjustIdea,
closeIdea,
providerCreateIdea,
providerCloseIdea,
providerAdjustIdea,
providerCreateFiatMintIdea,
createIdeaFromFiatMint,
createNormalizedTradeIdeaFromFiatMint,
adjustIdeaFromFiatMint,
closeIdeaFromFiatMint,
// adminCreateClientTokens,
giveIdeaAccessTo,
getPricingInfo,
getIdeaViewers,
// crud
// contract
// listAllStrategies,
// creator of ideas
listStrategiesByCreator,
listStrategyIdeasByCreatorAndReference,
listStrategyIdeasStagesByCreatorAndReference,
//
getIdeaNftIdByKeys,
getIdeaMetadataByKeys,
getIdeaByKeys,
getIdeaByNftId,
// owner of token to ideas
// getOwnedByIdeas,
// getOwnedByNfts,
// getCreatedByIdeas,
// getCreatedByNfts,
// getMyIdeasByFilter,
getExistingNftByStrategyRefAndTicker,
getCreatorOfNftIdea,
restoredIdeasWithPagination,
restoreIdeaImages,
restoreIdeasImages,
getAllIdeasUserCanSee,
getAllMyIdeas,
getMyIdeas,
// getAllPublicIdeas,
getMetadataByBlockId,
getKeysFromIdea,
testPricingAsset,
// adminListStrategies,
getStrategyChain,
getValidatedStrategyChain,
getStrategyMetadata,
getChronologicalIdeasFromStrategyChain,
getActiveIdeasFromStrategyChain,
getCurrentStrategyTickers,
// adminGetStrategyChain,
// getStrategyIdeas,
authorizeProvider,
revokeProvider,
authorizeCheck,
providerCheck,
// contract setup
listContractChains,
listContractsForChain,
selectChainContract,
getBlockchainContract,
getGateContract,
testLitActionsAvailability,
isValidWalletAddress,
listNetworks,
// listExchanges,
// canonical
readEvents,
updateCurrentContractDb,
serveContractsDb,
// listCreatorAndStrategyReferences,
listStrategyReferences,
getStrategyIdeasCanonical,
listStrategyReferencesCanonical,
listStrategiesDetailsCanonical,
listAllIdeasCanonical,
...migration_v3_module_1.MigrationV3TemporaryModule,
getVersion,
getContractDbVersion,
query: {
...query_views_module_1.QueryViewsModule,
},
};
//# sourceMappingURL=activ-v4.module.js.map