UNPKG

@q-dev/q-ts-gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

229 lines (201 loc) 6.04 kB
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>; }