import { SetRegistryDto } from "src/admin/dtos/set-registry.dto";
export enum RegistryName {
DealerRegistry = "DealerRegistry",
InvestorRegistry = "InvestorRegistry",
FundRegistry = "FundRegistry",
InstrumentRegistry = "InstrumentRegistry",
JurisdictionRegistry = "JurisdictionRegistry",
}
export enum ContractName {
erc20 = "erc20",
DealerRegistry = "DealerRegistry",
InvestorRegistry = "InvestorRegistry",
SubscriptionBook = "SubscriptionBook",
RedemptionBook = "RedemptionBook",
InstrumentRegistry = "InstrumentRegistry",
FundRegistry = "FundRegistry",
EternalRegistry = "EternalRegistry",
RoleRegistry = "RoleRegistry",
DealerRulesEngine = "DealerRulesEngine",
JurisdictionRegistry = "JurisdictionRegistry",
RulesEngine = "RulesEngine",
}
export enum EventName {
OrderCreated = "OrderCreated",
}
export enum TransactionNames {
mint = "mint",
transfer = "transfer",
approve = "approve",
addDealer = "addDealer",
addInvestor = "addInvestor",
addWallet = "addWallet",
setBlacklistStatus = "setBlacklistStatus",
dealerCreateOrder = "dealerCreateOrder",
dealerConfirmOrder = "dealerConfirmOrder",
dealerLockTokens = "dealerLockTokens",
investorCreateOrder = "investorCreateOrder",
investorConfirmOrder = "investorConfirmOrder",
investorLockTokens = "investorLockTokens",
settleOrders = "settleOrders",
adminForceRedemption = "adminForceRedemption",
adminCancelOrder = "adminCancelOrder",
dealerCancelOrder = "dealerCancelOrder",
investorCancelOrder = "investorCancelOrder",
updateAuditedNavPerShare = "updateAuditedNavPerShare",
updateUnauditedNavPerShare = "updateUnauditedNavPerShare",
addNewFund = "addNewFund",
addInstrument = "addInstrument",
addDealerToWhitelist = "addDealerToWhitelist",
setUpGlobalConfig = "setUpGlobalConfig",
setUpSubscription = "setUpSubscription",
setUpRedemption = "setUpRedemption",
setAddress = "setAddress",
setAddressArray = "setAddressArray",
setAddressArrayIndexValue = "setAddressArrayIndexValue",
setBool = "setBool",
setBytes = "setBytes",
setString = "setString",
setUint = "setUint",
createRole = "createRole",
setContractManager = "setContractManager",
grantAccess = "grantAccess",
revokeAccess = "revokeAccess",
resetAccess = "resetAccess",
grantRole = "grantRole",
assignInvestorToNewDealer = "assignInvestorToNewDealer",
rebalanceSettlements = "rebalanceSettlements",
allowDealer = "allowDealer",
allowInvestor = "allowInvestor",
setInvestorRestriction = "setInvestorRestriction",
registerLibreModule = "registerLibreModule",
editLibreModule = "editLibreModule",
deleteLibreModule = "deleteLibreModule",
registerModule = "registerModule",
deleteModule = "deleteModule",
editModule = "editModule",
adminLockTokens = "adminLockTokens",
setBatch = "setBatch",
initializeInstrument = "initializeInstrument",
}
export enum QueryNames {
balanceOf = "balanceOf",
getUint = "getUint",
getBytes = "getBytes",
getAddressArrayIndexValue = "getAddressArrayIndexValue",
getAddressArray = "getAddressArray",
getAddress = "getAddress",
getString = "getString",
getBool = "getBool",
checkInvestorAllowed = "checkInvestorAllowed",
}
export interface ITransactionSubmitter {
contractName: ContractName;
transactionName: TransactionNames;
signerKey: string;
contractAddress: string;
args: unknown[];
}
export interface ITransactionQuery
extends Omit<ITransactionSubmitter, "signerKey" | "transactionName"> {
queryName: QueryNames;
}
export interface TransactionInput {
transactionName: string;
inputs: {
name: string;
type: string;
}[];
}
export interface IAbis {
constant?: boolean;
inputs: {
internalType?: string;
name: string;
type: string;
indexed?: boolean;
}[];
anonymous?: boolean;
name: string;
outputs?: {
name: string;
type: string;
}[];
payable?: boolean;
stateMutability?: string;
type: string;
}
export interface IBatch {
_id: string[];
_keys: string[];
_boolValues: string[];
_uintValues: string[];
_addressValues: string[];
_stringValues: string[];
_bytesValues: string[];
_senderRole: string;
}
export type BatchRegistry = Omit<SetRegistryDto, "registryName" | "role">;