client-aftermath-ts-sdk
Version:
Client Aftermath TypeScript SDK
129 lines • 5.06 kB
TypeScript
import { TransactionArgument, Transaction } from "@mysten/sui/transactions";
import { AftermathApi } from "../../../general/providers/aftermathApi";
import { StakeEvent, StakingPosition, ApiStakeStakedSuiBody, ApiUnstakeBody, ApiStakeBody, ApiUpdateValidatorFeeBody, UnstakeEvent } from "../stakingTypes";
import { AnyObjectType, Balance, CoinType, ObjectId, StakingAddresses, SuiAddress } from "../../../types";
import { MoveErrors, MoveErrorsInterface } from "../../../general/types/moveErrorsInterface";
export declare class StakingApi implements MoveErrorsInterface {
private readonly Provider;
private static readonly constants;
readonly addresses: StakingAddresses;
readonly eventTypes: {
staked: AnyObjectType;
unstakeRequested: AnyObjectType;
unstaked: AnyObjectType;
epochWasChanged: AnyObjectType;
};
readonly coinTypes: {
afSui: CoinType;
};
readonly objectTypes: {
unverifiedValidatorOperationCap: AnyObjectType;
};
readonly moveErrors: MoveErrors;
constructor(Provider: AftermathApi);
/**
* Adds move call to tx for liquid staking of SUI for afSUI.
*
* @returns `Coin<AFSUI>` if `withTransfer` is `undefined` or `false`
*/
stakeTx: (inputs: {
tx: Transaction;
suiCoin: ObjectId | TransactionArgument;
validatorAddress: SuiAddress;
withTransfer?: boolean;
}) => import("@mysten/sui/transactions").TransactionResult;
/**
* Adds move call to tx for liquid unstaking of afSUI for SUI that will be
* processed at start of next epoch (end of current epoch).
*
* @returns ()
*/
unstakeTx: (inputs: {
tx: Transaction;
afSuiCoin: ObjectId | TransactionArgument;
}) => import("@mysten/sui/transactions").TransactionResult;
/**
* Adds move call to tx for liquid unstaking of afSUI for SUI that will be
* processed immedietly.
*
* @returns `Coin<SUI>` if `withTransfer` is `undefined` or `false`
*/
atomicUnstakeTx: (inputs: {
tx: Transaction;
afSuiCoin: ObjectId | TransactionArgument;
withTransfer?: boolean;
}) => import("@mysten/sui/transactions").TransactionResult;
/**
* Adds move call to tx for liquid staking of currently staked (non-liquid)
* SUI objects for afSUI.
*
* @returns `Coin<AFSUI>` if `withTransfer` is `undefined` or `false`
*/
requestStakeStakedSuiVecTx: (inputs: {
tx: Transaction;
stakedSuiIds: ObjectId[];
validatorAddress: SuiAddress;
withTransfer?: boolean;
}) => import("@mysten/sui/transactions").TransactionResult;
epochWasChangedTx: (inputs: {
tx: Transaction;
}) => import("@mysten/sui/transactions").TransactionResult;
afSuiToSuiExchangeRateTx: (inputs: {
tx: Transaction;
}) => import("@mysten/sui/transactions").TransactionResult;
suiToAfSuiExchangeRateTx: (inputs: {
tx: Transaction;
}) => import("@mysten/sui/transactions").TransactionResult;
totalSuiAmountTx: (inputs: {
tx: Transaction;
}) => import("@mysten/sui/transactions").TransactionResult;
afSuiToSuiTx: (inputs: {
tx: Transaction;
afSuiAmount: Balance;
}) => import("@mysten/sui/transactions").TransactionResult;
suiToAfSuiTx: (inputs: {
tx: Transaction;
suiAmount: Balance;
}) => import("@mysten/sui/transactions").TransactionResult;
updateValidatorFeeTx: (inputs: {
tx: Transaction;
validatorOperationCapId: ObjectId;
newFee: bigint;
}) => import("@mysten/sui/transactions").TransactionResult;
/**
* Builds complete PTB for liquid staking of SUI for afSUI.
*
* @returns Transaction Block ready for execution
*/
fetchBuildStakeTx: (inputs: ApiStakeBody) => Promise<Transaction>;
/**
* Builds complete PTB for liquid unstaking of afSUI for SUI.
*
* @returns Transaction Block ready for execution
*/
fetchBuildUnstakeTx: (inputs: ApiUnstakeBody) => Promise<Transaction>;
/**
* Builds complete PTB for liquid staking of currently staked (non-liquid)
* SUI objects for afSUI.
*
* @returns Transaction Block ready for execution
*/
fetchBuildStakeStakedSuiTx: (inputs: ApiStakeStakedSuiBody) => Promise<Transaction>;
buildUpdateValidatorFeeTx: (inputs: ApiUpdateValidatorFeeBody) => Promise<Transaction>;
buildEpochWasChangedTx: (inputs: {
walletAddress: string;
} & Omit<{
tx: Transaction;
}, "tx">) => Transaction;
private stakedEventType;
private unstakeRequestedEventType;
private unstakedEventType;
private epochWasChangedEventType;
static updateStakingPositionsFromEvent: (inputs: {
stakingPositions: StakingPosition[];
event: StakeEvent | UnstakeEvent;
}) => StakingPosition[];
private static assertValidExternalFee;
private static updateUnstakePositionsFromEvent;
}
//# sourceMappingURL=stakingApi.d.ts.map