@q-dev/q-ts-gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
229 lines (201 loc) • 6.04 kB
text/typescript
import BN from "bn.js";
import { NonPayableTx, PayableTx } from "./web3-contracts/types";
import PromiEvent from "web3-core-promievent";
import { TransactionReceipt } from "web3-eth/types";
export type PromiseOrValue<T> = T | Promise<T>;
export type BytesLike = string | number[];
export type BigNumberish = number | string | BN;
export type BigNumber = number | string | BN;
export type ParameterStruct = {
name: PromiseOrValue<string>;
value: PromiseOrValue<BytesLike>;
solidityType: PromiseOrValue<BigNumberish>;
};
export type ParameterStructOutput = [string, string, number] & {
name: string;
value: string;
solidityType: number;
};
export type DAOPanelConstructorParametersStruct = {
votingParams: IDAOVoting.ConstructorParamsStruct;
initialParameters: ParameterStruct[];
initialMembers: PromiseOrValue<string>[];
};
export type DAOPanelConstructorParametersStructOutput = [
IDAOVoting.ConstructorParamsStructOutput,
ParameterStructOutput[],
string[]
] & {
votingParams: IDAOVoting.ConstructorParamsStructOutput;
initialParameters: ParameterStructOutput[];
initialMembers: string[];
};
export type DAOConstructorParametersStruct = {
masterAccess: PromiseOrValue<string>;
tokenNames: PromiseOrValue<string>[];
tokenAddresses: PromiseOrValue<string>[];
votingNames: PromiseOrValue<string>[];
votingAddresses: PromiseOrValue<string>[];
tokenParams: IQRC20.ConstructorParamsStruct;
mainPanelParams: DAOPanelConstructorParametersStruct;
};
export type DAOConstructorParametersStructOutput = [
string,
string[],
string[],
string[],
string[],
IQRC20.ConstructorParamsStructOutput,
DAOPanelConstructorParametersStructOutput
] & {
masterAccess: string;
tokenNames: string[];
tokenAddresses: string[];
votingNames: string[];
votingAddresses: string[];
tokenParams: IQRC20.ConstructorParamsStructOutput;
mainPanelParams: DAOPanelConstructorParametersStructOutput;
};
export declare namespace IQRC20 {
export type ConstructorParamsStruct = {
name: PromiseOrValue<string>;
symbol: PromiseOrValue<string>;
contractURI: PromiseOrValue<string>;
decimals: PromiseOrValue<BigNumberish>;
totalSupplyCap: PromiseOrValue<BigNumberish>;
};
export type ConstructorParamsStructOutput = [
string,
string,
string,
number,
BigNumber
] & {
name: string;
symbol: string;
contractURI: string;
decimals: number;
totalSupplyCap: BigNumber;
};
}
export declare namespace IDAOVoting {
export type DAOVotingValuesStruct = {
votingPeriod: PromiseOrValue<BigNumberish>;
vetoPeriod: PromiseOrValue<BigNumberish>;
proposalExecutionPeriod: PromiseOrValue<BigNumberish>;
requiredQuorum: PromiseOrValue<BigNumberish>;
requiredVetoQuorum: PromiseOrValue<BigNumberish>;
votingType: PromiseOrValue<BigNumberish>;
};
export type DAOVotingValuesStructOutput = [
BigNumber,
BigNumber,
BigNumber,
BigNumber,
BigNumber,
BigNumber
] & {
votingPeriod: BigNumber;
vetoPeriod: BigNumber;
proposalExecutionPeriod: BigNumber;
requiredQuorum: BigNumber;
requiredVetoQuorum: BigNumber;
votingType: BigNumber;
};
export type InitialSituationStruct = {
votingSituationName: PromiseOrValue<string>;
votingValues: IDAOVoting.DAOVotingValuesStruct;
};
export type InitialSituationStructOutput = [
string,
IDAOVoting.DAOVotingValuesStructOutput
] & {
votingSituationName: string;
votingValues: IDAOVoting.DAOVotingValuesStructOutput;
};
export type ConstructorParamsStruct = {
panelName: PromiseOrValue<string>;
votingDescription: PromiseOrValue<string>;
votingToken: PromiseOrValue<string>;
situations: IDAOVoting.InitialSituationStruct[];
};
export type ConstructorParamsStructOutput = [
string,
string,
string,
IDAOVoting.InitialSituationStructOutput[]
] & {
panelName: string;
votingDescription: string;
votingToken: string;
situations: IDAOVoting.InitialSituationStructOutput[];
};
}
export declare namespace IRBAC {
export type ResourceWithPermissionsStruct = {
resource: PromiseOrValue<string>;
permissions: PromiseOrValue<string>[];
};
export type ResourceWithPermissionsStructOutput = [string, string[]] & {
resource: string;
permissions: string[];
};
}
export declare namespace IPermissionManager {
export type VetoGroupInitializationParamsStruct = {
target: PromiseOrValue<string>;
name: PromiseOrValue<string>;
initialMembers: PromiseOrValue<string>[];
linkedMemberStorage: PromiseOrValue<string>;
};
export type VetoGroupInitializationParamsStructOutput = [
string,
string,
string[],
string
] & {
target: string;
name: string;
initialMembers: string[];
linkedMemberStorage: string;
};
}
/**
* Helps specify gasBuffer in non-payable transactions.
* The inherited properties are described in the [Web3 documentation](@web3-documentation/web3-eth-contract.html#id33)
*/
export interface QNonPayableTx extends NonPayableTx {
/**
* @field factor to be applied on the gas limit vs. the estimated gas use.
* 1.3 would mean 30% above estimate.
*/
gasBuffer?: string | number;
}
/**
* Helps specify sent value in Q in payable transactions.
* The inherited properties are described in the [Web3 documentation](@web3-documentation/web3-eth-contract.html#id33)
*/
export type QPayableTx = QNonPayableTx &
PayableTx & {
/**
* @field sent amount in Q.
* 1 would mean 10^18 Wei.
*/
qAmount?: string | number;
};
/**
* account info.
* Used by {@link Web3Adapter }.
* Also used by web3-adapter.
*/
export interface AddressWithBalance {
address: string;
balance: string;
}
/**
* Used by {@link BaseContractInstance } to return PromiEvent
* This syntax is used to avoid waiting for the completion of the PromiEvent execution.
*/
export interface SubmitTransactionResponse {
promiEvent: PromiEvent<TransactionReceipt>;
}