ontology-ts-sdk
Version:
Comprehensive TypeScript library for the Ontology blockchain.
263 lines (262 loc) • 9.81 kB
TypeScript
import { Address } from '../../crypto';
import { Transaction } from '../../transaction/transaction';
import { StringReader } from '../../utils';
/**
* Register to be candidate node.
* This tx needs signatures from userAddr and payer if these two address are not the same.
* @param ontid user's ONT ID, must be assigned with the role.
* @param peerPubKey public key of user's peer
* @param userAddr user's address to pledge ONT&ONG. This address must have enough ONT & ONG.
* @param keyNo user's pk id
* @param initPos Initial state
* @param payer Address to pay for the gas.
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeRegisterCandidateTx(ontid: string, peerPubKey: string, keyNo: number, userAddr: Address, initPos: number, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
*
* @param userAddr User's address to pledge ONT&ONG.
* @param peerPubKey Public key of user's peer
* @param payer Address to pay for the gas.
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeUnregisterCandidateTx(userAddr: Address, peerPubKey: string, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Creates transaction to approve candidate
* @param peerPubKey Public key of user's peer
* @param payer Address to pay for the gas.
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeApproveCandidateTx(peerPubKey: string, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Creates transaction to reject candidate
* @param peerPubKey Public key of user's peer
* @param payer Address to pay for the gas.
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeRejectCandidateTx(peerPubKey: string, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Creates transaction to vote for some peers.
* Can only vote for peers that with status 1 or 2
* This tx needs signatures from userAddr and payer if these two address are not the same.
* @param userAddr User's address
* @param peerPubKeys Public keys of peers that to be voted
* @param posList Array of token that to vote
* @param payer Address to pay for transaction's gas.
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeVoteForPeerTx(userAddr: Address, peerPubKeys: string[], posList: number[], payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* User unvotes peer nodes
* @param userAddr user's address
* @param peerPubKeys peer's pks
* @param posList amount of ONT to unvote
* @param payer Address to pay for the gas.
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeUnvoteForPeerTx(userAddr: Address, peerPubKeys: string[], posList: number[], payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Withdraw the unvote ONT
* Need two signatures if userAddr and payer are not the same
* @param userAddr
* @param peerPubKeys
* @param withdrawList
*/
export declare function makeWithdrawTx(userAddr: Address, peerPubKeys: string[], withdrawList: number[], payer: Address, gasPrice: string, gasLimit: string): Transaction;
/** Quit node register
* Need two signatures if userAddr and payer are not the same
*/
export declare function makeQuitNodeTx(userAddr: Address, peerPubKey: string, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Peer change the status of authorization
* @param peerPubKey Peer's public key
* @param userAddr User's address
* @param maxAuthorize Allowed max amount of stake authorization
* @param payer Payer of the transaction fee
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeChangeAuthorizationTx(peerPubKey: string, userAddr: Address, maxAuthorize: number, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Update allocation proportion of peer (with peer cost)
* @param peerPubKey
* @param userAddr
* @param peerCost
* @param payer
* @param gasPrice
* @param gasLimit
*/
export declare function makeSetPeerCostTx(peerPubKey: string, userAddr: Address, peerCost: number, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Update allocation proportion of peer (with peer cost and stake cost)
* @param peerPubKey
* @param userAddr
* @param peerCost
* @param stakeCost
* @param payer
* @param gasPrice
* @param gasLimit
*/
export declare function makeSetFeePercentageTx(peerPubKey: string, userAddr: Address, peerCost: number, stakeCost: number, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Withdraw fee to user's address
* @param userAddr User's address
* @param payer
* @param gasPrice
* @param gasLimit
*/
export declare function makeWithdrawFeeTx(userAddr: Address, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* User authorize some peers
* @param userAddr
* @param peerPubKeyList
* @param posList
* @param payer
* @param gasPrice
* @param gasLimit
*/
export declare function makeAuthorizeForPeerTx(userAddr: Address, peerPubKeyList: string[], posList: number[], payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* User cancels the authorization of peer
*/
export declare function makeUnauthorizeForPeerTx(userAddr: Address, peerPubKeyList: string[], posList: number[], payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Peer add the init pos
* @param peerPubkey Peer's public key
* @param userAddr Stake wallet address
* @param pos Amount of pos to add
* @param payer Payer of the transaction
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeAddInitPosTx(peerPubkey: string, userAddr: Address, pos: number, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* Peer reduce the init pos
* @param peerPubkey Peer's public key
* @param userAddr Stake wallet address
* @param pos Amount of pos to reduce
* @param payer Payer of the transaction
* @param gasPrice Gas price
* @param gasLimit Gas limit
*/
export declare function makeReduceInitPosTx(peerPubkey: string, userAddr: Address, pos: number, payer: Address, gasPrice: string, gasLimit: string): Transaction;
export declare function makeWithdrawPeerUnboundOngTx(userAddr: Address, payer: Address, gasPrice: string, gasLimit: string): Transaction;
/**
* If not set ifAuthorize or cost before, query result will be empty.
* @param peerPubKey
* @param url
*/
export declare function getAttributes(peerPubKey: string, url?: string): Promise<PeerAttributes>;
/**
* Get the reward fee of address
* @param address User's address
* @param url Node's restfull url
*/
export declare function getSplitFeeAddress(address: Address, url?: string): Promise<SplitFeeAddress>;
/**
* Get authorization of user's address
* @param peerPubKey Peer's public key
* @param address User's address
* @param url Node's restful url
*/
export declare function getAuthorizeInfo(peerPubKey: string, address: Address, url?: string): Promise<AuthorizeInfo>;
/**
* Query the governance view
* @param url Url of restful api
*/
export declare function getGovernanceView(url?: string): Promise<GovernanceView>;
/**
* Query all the peer's state. The result is a map.
* @param url Url of blockchain node
*/
export declare function getPeerPoolMap(url?: string): Promise<any>;
export declare function getGlobalParam(url?: string): Promise<GlobalParam>;
export declare function getTotalStake(userAddr: Address, url?: string): Promise<TotalStake>;
export declare function getPeerUnboundOng(userAddr: Address, url?: string): Promise<number>;
export declare function getConfiguration(url?: string): Promise<Configuration>;
/**
* Use to store governance state.
*/
export declare class GovernanceView {
static deserialize(sr: StringReader): GovernanceView;
view: number;
height: number;
txhash: string;
serialize(): string;
}
/**
* Describs the peer's state in the pool.
*/
export declare class PeerPoolItem {
static deserialize(sr: StringReader): PeerPoolItem;
index: number;
peerPubkey: string;
address: Address;
status: number;
initPos: number;
totalPos: number;
serialize(): string;
}
export declare class PeerAttributes {
static deserialize(sr: StringReader): PeerAttributes;
peerPubkey: string;
maxAuthorize: number;
t2PeerCost: number;
t1PeerCost: number;
tPeerCost: number;
t2StakeCost: number;
t1StakeCost: number;
tStakeCost: number;
field4: string;
serialize(): string;
}
export declare class SplitFeeAddress {
static deserialize(sr: StringReader): SplitFeeAddress;
address: Address;
amount: number;
}
export declare class AuthorizeInfo {
static deserialize(sr: StringReader): AuthorizeInfo;
peerPubkey: string;
address: Address;
consensusPos: number;
freezePos: number;
newPos: number;
withdrawPos: number;
withdrawFreezePos: number;
withdrawUnfreezePos: number;
}
export declare class GlobalParam {
static deserialize(sr: StringReader): GlobalParam;
candidateFee: number;
candidateNum: number;
minInitState: number;
posLimit: number;
A: number;
B: number;
yita: number;
penalty: number;
}
export declare class TotalStake {
static deserialize(sr: StringReader): TotalStake;
address: Address;
stake: number;
timeOffset: number;
}
export declare class Configuration {
static deserialize(sr: StringReader): Configuration;
N: number;
C: number;
K: number;
L: number;
BlockMsgDelay: number;
HashMsgDelay: number;
PeerHandShakeTimeout: number;
MaxBlockChangeView: number;
}