@ixily/activ
Version:
Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.
75 lines (74 loc) • 4.61 kB
TypeScript
import { IMessDbView } from '../../';
import { CONTRACT_INTERFACES, IChain, IPortfolioView, MyIdeaKeys } from '../../../../../';
interface Creator {
creatorWallet: string;
strategies: Set<string>;
strategiesByOldest: string[];
createdIdeasIndexesByOldest: string[];
}
interface IRebalanceMap {
index: number;
reference: string;
ideaIndexes: string[];
}
interface MyContractDb {
contractUniqueKey: string;
chain: IChain;
contractAddress: string;
creators: Map<string, Creator>;
creatorsByOldest: string[];
userAccessStrategies: Map<string, Set<string>>;
userSubscribedToStrategies: Map<string, Set<string>>;
userAccessIdeaNfts: Map<string, Set<number>>;
userAccessIdeaIndexesByOldest: Map<string, string[]>;
userAccessIdeaKeysByStrategy: Map<string, Map<string, Set<number>>>;
publicStrategies: Set<string>;
publicStrategiesByOldest: string[];
publicStrategiesFilled: Map<string, CONTRACT_INTERFACES.ITradeIdeaStrategy>;
ideaIndexByOldest: string[];
publicIdeaIndexByOldest: string[];
ideaIndexByStrategyByOldest: Map<string, string[]>;
ideaIndexToKeys: Map<string, MyIdeaKeys>;
ideaIndexToData: Map<string, CONTRACT_INTERFACES.ITradeIdea>;
allocationStrategyPortfolios: Map<string, IPortfolioView | 'ENCRYPTED'>;
allocationRebalances: Map<string, IRebalanceMap[]>;
}
export interface MyDbViewState {
contractDbs: Map<string, MyContractDb>;
contractsByOldest: string[];
}
declare const getContractsInMemoryState: () => MyDbViewState;
declare const setContractsInMemoryState: (_state: MyDbViewState) => void;
interface IContractsInMemoryDbView extends IMessDbView {
listAllContracts: () => Promise<string[]>;
listAllStrategiesByContractAndUser: (uniqueContractKey: string, userWallet: string) => Promise<string[]>;
getStrategyLastIdea: (uniqueStrategyReference: string) => Promise<CONTRACT_INTERFACES.ITradeIdea>;
getStrategy: (uniqueStrategyReference: string) => Promise<CONTRACT_INTERFACES.ITradeIdeaStrategy>;
getStrategyCreator: (uniqueStrategyReference: string) => Promise<CONTRACT_INTERFACES.ITradeIdeaCreator>;
getCreator: (uniqueContractKey: string, creatorWallet: string) => Promise<CONTRACT_INTERFACES.ITradeIdeaCreator>;
getStrategyWithCreator: (uniqueStrategyReference: string) => Promise<{
strategy: CONTRACT_INTERFACES.ITradeIdeaStrategy;
creator: CONTRACT_INTERFACES.ITradeIdeaCreator;
}>;
listAllIdeasIndexesByStrategy: (uniqueStrategyKey: string) => Promise<string[]>;
listAllIdeasKeysByStrategy: (uniqueStrategyKey: string) => Promise<MyIdeaKeys[]>;
listAllIdeasIndexesByContract: (uniqueContractKey: string) => Promise<string[]>;
listAllPublicIdeasIndexesByContract: (uniqueContractKey: string) => Promise<string[]>;
listCreatedByIdeasIndexesByContract: (uniqueContractKey: string, creatorWallet: string) => Promise<string[]>;
listOwnedByIdeasIndexesByContract: (uniqueContractKey: string, ownerWallet: string) => Promise<string[]>;
listOwnedByIdeasKeysByContract: (uniqueContractKey: string, ownerWallet: string) => Promise<MyIdeaKeys[]>;
getIdeaKeys: (ideaIndex: string) => Promise<MyIdeaKeys>;
getIdeaData: (ideaIndex: string) => Promise<CONTRACT_INTERFACES.ITradeIdea>;
listContractCreatorStrategies: (uniqueContractKey: string, creatorWallet: string) => Promise<string[]>;
listContractUserWithAccessibleIdeasStrategies: (uniqueContractKey: string, userWallet: string) => Promise<string[]>;
listContractUserSubscribedToIdeasStrategies: (uniqueContractKey: string, userWallet: string) => Promise<string[]>;
listContractUserAccessibleIdeas: (uniqueContractKey: string, userWallet: string) => Promise<number[]>;
listContractUserAccessibleIdeasByStrategy: (uniqueContractKey: string, userWallet: string, uniqueStrategyKey: string) => Promise<number[]>;
listContractWithPublicIdeasStrategies: (uniqueContractKey: string) => Promise<string[]>;
getStrategyPortfolio: (uniqueStrategyReference: string) => Promise<IPortfolioView | 'ENCRYPTED'>;
getStrategyRebalances: (uniqueStrategyReference: string) => Promise<IRebalanceMap[]>;
getStrategyRebalance: (uniqueStrategyReference: string, rebalanceReference: string) => Promise<IRebalanceMap>;
getStrategyRebalancesInPeriod: (uniqueStrategyReference: string, startDate: number, endDate: number) => Promise<IRebalanceMap[]>;
}
declare const contractsInMemoryDbView: IContractsInMemoryDbView;
export { IContractsInMemoryDbView, contractsInMemoryDbView, getContractsInMemoryState, setContractsInMemoryState, };