tronewb
Version:
JavaScript SDK that encapsulates the TRON HTTP API
353 lines (314 loc) • 9.24 kB
text/typescript
import { Resource } from '../types/TransactionBuilder.js';
import { ContractAbiInterface } from './ABI.js';
export enum ContractType {
AccountCreateContract = 'AccountCreateContract',
TransferContract = 'TransferContract',
TransferAssetContract = 'TransferAssetContract',
VoteAssetContract = 'VoteAssetContract',
VoteWitnessContract = 'VoteWitnessContract',
WitnessCreateContract = 'WitnessCreateContract',
AssetIssueContract = 'AssetIssueContract',
WitnessUpdateContract = 'WitnessUpdateContract',
ParticipateAssetIssueContract = 'ParticipateAssetIssueContract',
AccountUpdateContract = 'AccountUpdateContract',
FreezeBalanceContract = 'FreezeBalanceContract',
UnfreezeBalanceContract = 'UnfreezeBalanceContract',
CancelAllUnfreezeV2Contract = 'CancelAllUnfreezeV2Contract',
WithdrawBalanceContract = 'WithdrawBalanceContract',
UnfreezeAssetContract = 'UnfreezeAssetContract',
UpdateAssetContract = 'UpdateAssetContract',
ProposalCreateContract = 'ProposalCreateContract',
ProposalApproveContract = 'ProposalApproveContract',
ProposalDeleteContract = 'ProposalDeleteContract',
SetAccountIdContract = 'SetAccountIdContract',
CustomContract = 'CustomContract',
CreateSmartContract = 'CreateSmartContract',
TriggerSmartContract = 'TriggerSmartContract',
GetContract = 'GetContract',
UpdateSettingContract = 'UpdateSettingContract',
ExchangeCreateContract = 'ExchangeCreateContract',
ExchangeInjectContract = 'ExchangeInjectContract',
ExchangeWithdrawContract = 'ExchangeWithdrawContract',
ExchangeTransactionContract = 'ExchangeTransactionContract',
UpdateEnergyLimitContract = 'UpdateEnergyLimitContract',
AccountPermissionUpdateContract = 'AccountPermissionUpdateContract',
ClearABIContract = 'ClearABIContract',
UpdateBrokerageContract = 'UpdateBrokerageContract',
ShieldedTransferContract = 'ShieldedTransferContract',
MarketSellAssetContract = 'MarketSellAssetContract',
MarketCancelOrderContract = 'MarketCancelOrderContract',
FreezeBalanceV2Contract = 'FreezeBalanceV2Contract',
UnfreezeBalanceV2Contract = 'UnfreezeBalanceV2Contract',
WithdrawExpireUnfreezeContract = 'WithdrawExpireUnfreezeContract',
DelegateResourceContract = 'DelegateResourceContract',
UnDelegateResourceContract = 'UnDelegateResourceContract',
UNRECOGNIZED = 'UNRECOGNIZED',
}
export enum Permission_PermissionType {
Owner = 0,
Witness = 1,
Active = 2,
UNRECOGNIZED = -1,
}
export interface Key {
address: Uint8Array;
weight: number;
}
export enum AccountType {
Normal = 0,
AssetIssue = 1,
Contract = 2,
UNRECOGNIZED = -1,
}
export interface PermissionKey {
address: string;
weight: number;
}
export interface Permission {
type: number;
/** Owner id=0, Witness id=1, Active id start by 2 */
id?: number;
permission_name: string;
threshold: number;
operations?: string;
keys: PermissionKey[];
}
export interface TransferContract {
to_address: string;
owner_address: string;
amount: number;
}
export interface TransferAssetContract {
to_address: string;
owner_address: string;
amount: number;
asset_name: string;
}
export interface ParticipateAssetIssueContract {
to_address: string;
owner_address: string;
asset_name: string;
amount: number;
}
export interface TriggerSmartContract {
owner_address: string;
contract_address: string;
call_value?: number;
call_token_value?: number;
token_id?: number;
data?: string;
}
export interface FreezeBalanceContract {
owner_address: string;
frozen_balance: number;
frozen_duration: number;
resource?: Resource;
receiver_address?: string;
}
export interface UnfreezeBalanceContract {
owner_address: string;
resource: string;
receiver_address: string;
}
export interface WithdrawBalanceContract {
owner_address: string;
}
export interface FreezeBalanceV2Contract {
owner_address: string;
frozen_balance: number;
resource?: Resource;
}
export interface CancelFreezeBalanceV2Contract {
owner_address: string;
}
export interface UnfreezeBalanceV2Contract {
owner_address: string;
unfreeze_balance: number;
resource?: Resource;
}
export interface DelegateResourceContract {
owner_address: string;
receiver_address: string;
balance: number;
resource?: Resource;
lock?: boolean;
lock_period?: number;
}
export interface UnDelegateResourceContract {
owner_address: string;
receiver_address: string;
balance: number;
resource?: Resource;
}
export interface WithdrawExpireUnfreezeContract {
owner_address: string;
}
export interface CreateSmartContract {
owner_address: string;
call_token_value: number;
token_id: string;
new_contract: {
name: string;
origin_address: string;
contract_address: string;
abi: { entrys?: ContractAbiInterface };
bytecode: string;
call_value: number;
consume_user_resource_percent: number;
origin_energy_limit: number;
};
}
export interface DeployConstantContract {
data: string;
owner_address: string;
call_value?: number;
token_id?: number | string;
call_token_value?: number | string;
}
export interface ClearABIContract {
contract_address: string;
owner_address: string;
}
export interface UpdateBrokerageContract {
brokerage: number;
owner_address: string;
}
interface FrozenSupply {
frozen_amount: number;
frozen_days: number;
}
export interface AssetIssueContract {
owner_address: string;
name: string;
abbr: string;
description: string;
url: string;
total_supply: number;
trx_num: number;
num: number;
start_time: number;
end_time: number;
precision: number;
free_asset_net_limit: number;
public_free_asset_net_limit: number;
public_free_asset_net_usage: number;
public_latest_free_net_time: number;
vote_score: number;
frozen_supply: FrozenSupply[];
}
export interface AccountCreateContract {
account_address: string;
owner_address: string;
}
export interface AccountUpdateContract {
account_name: string;
owner_address: string;
}
export interface SetAccountIdContract {
account_id: string;
owner_address: string;
}
export interface ProposalCreateContract {
owner_address: string;
parameters: Record<string, string | number>[];
}
export interface ProposalDeleteContract {
owner_address: string;
proposal_id: number;
}
export interface VoteProposalContract {
owner_address: string;
proposal_id: number;
is_add_approval: boolean;
}
export interface ExchangeCreateContract {
owner_address: string;
first_token_id: string;
first_token_balance: number;
second_token_id: string;
second_token_balance: number;
}
export interface ExchangeInjectContract {
owner_address: string;
exchange_id: number;
token_id: string;
quant: number;
}
export interface ExchangeWithdrawContract {
owner_address: string;
exchange_id: number;
token_id: string;
quant: number;
}
export interface ExchangeTransactionContract {
owner_address: string;
exchange_id: number;
token_id: string;
quant: number;
expected: number;
}
export interface UpdateSettingContract {
owner_address: string;
contract_address: string;
consume_user_resource_percent: number;
}
export interface UpdateEnergyLimitContract {
owner_address: string;
contract_address: string;
origin_energy_limit: number;
}
export interface AccountPermissionUpdateContract {
owner_address: string;
owner?: Permission;
witness?: Permission;
actives?: Permission[];
}
export interface UpdateAssetContract {
owner_address: string;
description: string;
url: string;
new_limit?: number;
new_public_limit?: number;
}
export interface WitnessCreateContract {
owner_address: string;
url: string;
}
export interface VoteWitnessContract {
owner_address: string;
votes: { vote_address: string; vote_count: number }[];
}
export type ContractParamter =
| TransferContract
| TransferAssetContract
| ParticipateAssetIssueContract
| TriggerSmartContract
| FreezeBalanceContract
| UnfreezeBalanceContract
| WithdrawBalanceContract
| FreezeBalanceV2Contract
| CancelFreezeBalanceV2Contract
| UnfreezeBalanceV2Contract
| DelegateResourceContract
| UnDelegateResourceContract
| WithdrawExpireUnfreezeContract
| CreateSmartContract
| ClearABIContract
| UpdateBrokerageContract
| AssetIssueContract
| AccountCreateContract
| AccountUpdateContract
| SetAccountIdContract
| ProposalCreateContract
| ProposalDeleteContract
| VoteProposalContract
| ExchangeCreateContract
| ExchangeInjectContract
| ExchangeWithdrawContract
| ExchangeTransactionContract
| UpdateSettingContract
| UpdateEnergyLimitContract
| AccountPermissionUpdateContract
| UpdateAssetContract
| WitnessCreateContract
| VoteWitnessContract;