@luffalab/luffa-endless-sdk
Version:
luffa endless ts sdk
108 lines (106 loc) • 3.05 kB
text/typescript
declare enum Network {
MAINNET = "mainnet",
TESTNET = "testnet",
ETH = "eth",
BSC = "bsc"
}
type IInitData = {
colorMode?: 'light' | 'dark';
network: Network | string;
fullnode?: string;
indexer?: string;
walletUrl?: string;
prover?: string;
callbackWalletName?: string;
miniprogram?: Boolean;
windowWidth?: number;
};
type ChainData = {
targetNet: 'endless' | 'eds' | 'eth' | 'bsc';
};
declare enum UserResponseStatus {
APPROVED = "Approved",
REJECTED = "Rejected"
}
interface UserApproval<TResponseArgs> {
status: UserResponseStatus.APPROVED;
args: TResponseArgs;
}
interface UserRejection {
status: UserResponseStatus.REJECTED;
message?: string;
}
type UserResponse<TResponseArgs> = UserApproval<TResponseArgs> | UserRejection;
interface AccountInfo {
account: string;
address: string;
authKey: string;
ansName?: string;
}
interface NetworkInfo {
name: Network | string;
chainId: number;
url?: string;
}
type EndlessSignMessageInput = {
address?: boolean;
application?: boolean;
chainId?: boolean;
message: string;
nonce: string;
};
type EndlessSignMessageOutput = {
address?: string;
application?: string;
chainId?: number;
fullMessage: string;
publicKey: string;
message: string;
nonce: string;
prefix: 'Endless::Message';
signature: string;
};
type AnyNumber = number | bigint;
type InputGenerateTransactionOptions = {
maxGasAmount?: number;
gasUnitPrice?: number;
expireTimestamp?: number;
accountSequenceNumber?: AnyNumber;
};
type MoveStructId = `${string}::${string}::${string}`;
type MoveFunctionId = MoveStructId;
type InputEntryFunctionData = {
function: MoveFunctionId;
typeArguments?: Array<string>;
functionArguments: Array<string>;
abi?: any;
paymentChecksum?: string;
};
interface EndlessSignAndSubmitTransactionInput {
payload: InputEntryFunctionData;
options?: InputGenerateTransactionOptions;
}
declare enum EndlessSendTransactionType {
SIGNATURE_ONLY = "signatureOnly",
SIGN_AND_SUBMIT = "signAndSubmit"
}
declare enum EndlessWalletTransactionType {
SIMPLE = "simple",
MULTI_AGENT = "multiAgent"
}
declare global {
interface Window {
webkit: any;
WeixinJSBridge: {
invoke(api: string, data: any, callback: (res: any) => void): void;
on(api: string, callback: (res: any) => void): void;
};
endlessWallet?: {
sendResponse: (response: any) => void;
};
_endlessWallet?: {
sendMessage: (data: any) => void;
};
}
}
export { type AccountInfo, type AnyNumber, type ChainData, EndlessSendTransactionType, type EndlessSignAndSubmitTransactionInput, type EndlessSignMessageInput, type EndlessSignMessageOutput, EndlessWalletTransactionType, type IInitData, type InputGenerateTransactionOptions, Network, type NetworkInfo, type UserApproval, type UserRejection, type UserResponse, UserResponseStatus };