@ledgerhq/coin-tron
Version:
Ledger Tron Coin integration
247 lines • 7.88 kB
TypeScript
import { Account, AccountRaw, Operation, OperationExtra, OperationExtraRaw, OperationRaw, TransactionCommon, TransactionCommonRaw, TransactionStatusCommon, TransactionStatusCommonRaw } from "@ledgerhq/types-live";
import { BigNumber } from "bignumber.js";
export type TronOperationMode = "send" | "freeze" | "unfreeze" | "vote" | "claimReward" | "withdrawExpireUnfreeze" | "unDelegateResource" | "legacyUnfreeze";
export type TronResource = "BANDWIDTH" | "ENERGY";
export type NetworkInfo = {
family: "tron";
freeNetUsed: BigNumber;
freeNetLimit: BigNumber;
netUsed: BigNumber;
netLimit: BigNumber;
energyUsed: BigNumber;
energyLimit: BigNumber;
};
export type NetworkInfoRaw = {
family: "tron";
freeNetUsed: string;
freeNetLimit: string;
netUsed: string;
netLimit: string;
energyUsed: string;
energyLimit: string;
};
export type Transaction = TransactionCommon & {
family: "tron";
mode: TronOperationMode;
resource: TronResource | null | undefined;
networkInfo: NetworkInfo | null | undefined;
duration: number | null | undefined;
votes: Vote[];
};
export type TransactionRaw = TransactionCommonRaw & {
mode: TronOperationMode;
family: "tron";
resource: TronResource | null | undefined;
networkInfo: NetworkInfoRaw | null | undefined;
duration: number | null | undefined;
votes: Vote[];
};
export type TrongridTxType = "TransferContract" | "TransferAssetContract" | "FreezeBalanceContract" | "UnfreezeBalanceContract" | "VoteWitnessContract" | "TriggerSmartContract" | "ContractApproval" | "WithdrawBalanceContract" | "ExchangeTransactionContract" | "FreezeBalanceV2Contract" | "UnfreezeBalanceV2Contract" | "WithdrawExpireUnfreezeContract" | "UnDelegateResourceContract";
export type TrongridTxInfo = {
txID: string;
date: Date;
type: TrongridTxType;
tokenId?: string;
tokenAddress?: string;
tokenType?: string;
from: string;
to?: string;
value?: BigNumber;
fee?: BigNumber;
resource?: TronResource;
blockHeight?: number;
extra?: TrongridExtraTxInfo;
hasFailed: boolean;
};
export type TronOperation = Operation<TrongridExtraTxInfo>;
export type TronOperationRaw = OperationRaw<TrongridExtraTxInfoRaw>;
export type TrongridExtraTxInfo = OperationExtra & {
frozenAmount?: BigNumber;
unfreezeAmount?: BigNumber;
votes?: Vote[];
unDelegatedAmount?: BigNumber;
receiverAddress?: string;
};
export declare function isTrongridExtraTxInfo(op: OperationExtra): op is TrongridExtraTxInfo;
export type TrongridExtraTxInfoRaw = OperationExtraRaw & {
frozenAmount?: string;
unfreezeAmount?: string;
votes?: Vote[];
unDelegatedAmount?: string;
receiverAddress?: string;
};
export declare function isTrongridExtraTxInfoRaw(op: OperationExtraRaw): op is TrongridExtraTxInfoRaw;
/** Payload types to send to trongrid */
export type SendTransactionData = {
to_address: string;
owner_address: string;
amount: number;
asset_name: string | null | undefined;
};
export type SmartContractFunction = "transfer(address,uint256)";
export type SmartContractTransactionData = {
function_selector: SmartContractFunction;
fee_limit: number;
call_value: number;
contract_address: string;
parameter: string;
owner_address: string;
};
export type FreezeTransactionData = {
owner_address: string;
frozen_balance: number;
resource: TronResource | null | undefined;
};
export type UnFreezeTransactionData = {
owner_address: string;
resource: TronResource | null | undefined;
unfreeze_balance: number;
};
export type LegacyUnfreezeTransactionData = {
receiver_address?: string;
owner_address: string;
resource: TronResource | null | undefined;
};
export type WithdrawExpireUnfreezeTransactionData = {
owner_address: string;
};
export type UnDelegateResourceTransactionData = {
owner_address: string;
resource: TronResource | null | undefined;
receiver_address: string;
balance: number;
};
export type SendTransactionDataSuccess = {
raw_data_hex?: string;
raw_data: Record<string, any> | undefined;
txID: string;
};
export type SuperRepresentativeData = {
list: SuperRepresentative[];
totalVotes: number;
nextVotingDate: Date;
};
export type SuperRepresentative = {
address: string;
name: string | null | undefined;
url: string | null | undefined;
isJobs: boolean;
brokerage: number;
voteCount: number;
totalProduced: number | null | undefined;
totalMissed: number | null | undefined;
latestBlockNum: number | null | undefined;
latestSlotNum: number | null | undefined;
};
export type TronResources = {
frozen: {
bandwidth: FrozenInfo | null | undefined;
energy: FrozenInfo | null | undefined;
};
unFrozen: {
bandwidth: UnFrozenInfo[] | null | undefined;
energy: UnFrozenInfo[] | null | undefined;
};
delegatedFrozen: {
bandwidth: DelegatedFrozenInfo | null | undefined;
energy: DelegatedFrozenInfo | null | undefined;
};
legacyFrozen: {
bandwidth: LegacyFrozenInfo | null | undefined;
energy: LegacyFrozenInfo | null | undefined;
};
votes: Vote[];
tronPower: number;
energy: BigNumber;
bandwidth: BandwidthInfo;
unwithdrawnReward: BigNumber;
lastWithdrawnRewardDate: Date | null | undefined;
lastVotedDate: Date | null | undefined;
cacheTransactionInfoById: Record<string, TronTransactionInfo> | undefined;
};
export type TronResourcesRaw = {
frozen: {
bandwidth: FrozenInfoRaw | null | undefined;
energy: FrozenInfoRaw | null | undefined;
};
unFrozen: {
bandwidth: UnFrozenInfoRaw[] | null | undefined;
energy: UnFrozenInfoRaw[] | null | undefined;
};
delegatedFrozen: {
bandwidth: DelegatedFrozenInfoRaw | null | undefined;
energy: DelegatedFrozenInfoRaw | null | undefined;
};
legacyFrozen: {
bandwidth: LegacyFrozenInfoRaw | null | undefined;
energy: LegacyFrozenInfoRaw | null | undefined;
};
votes: Vote[];
tronPower: number;
energy: string;
bandwidth: BandwidthInfoRaw;
unwithdrawnReward: string;
lastWithdrawnRewardDate: string | null | undefined;
lastVotedDate: string | null | undefined;
cacheTransactionInfoById: Record<string, TronTransactionInfoRaw> | undefined;
};
export type Vote = {
address: string;
voteCount: number;
};
export type DelegatedFrozenInfo = {
amount: BigNumber;
};
export type DelegatedFrozenInfoRaw = {
amount: string;
};
export type FrozenInfo = {
amount: BigNumber;
};
export type FrozenInfoRaw = {
amount: string;
};
export type LegacyFrozenInfo = {
amount: BigNumber;
expiredAt: Date;
};
export type LegacyFrozenInfoRaw = {
amount: string;
expiredAt: string;
};
export type UnFrozenInfo = {
amount: BigNumber;
expireTime: Date;
};
export type UnFrozenInfoRaw = {
amount: string;
expireTime: string;
};
export type BandwidthInfo = {
freeUsed: BigNumber;
freeLimit: BigNumber;
gainedUsed: BigNumber;
gainedLimit: BigNumber;
};
export type BandwidthInfoRaw = {
freeUsed: string;
freeLimit: string;
gainedUsed: string;
gainedLimit: string;
};
export type TronTransactionInfo = {
fee: number;
blockNumber: number;
withdraw_amount?: number;
unfreeze_amount?: number;
};
export type TronTransactionInfoRaw = [number, number, number?, number?];
export type TronAccount = Account & {
tronResources: TronResources;
};
export type TronAccountRaw = AccountRaw & {
tronResources: TronResourcesRaw;
};
export type TransactionStatus = TransactionStatusCommon;
export type TransactionStatusRaw = TransactionStatusCommonRaw;
//# sourceMappingURL=bridge.d.ts.map