/// import { AssetDef } from "algosdk"; import { Runtime } from "."; import { AccountAddress, AlgoTransferParam, AssetHoldingM, AssetModFields, AssetTransferParam, Context, ExecParams, SSCAttributesM, State, StoreAccountI, Txn } from "./types"; export declare class Ctx implements Context { state: State; tx: Txn; gtxs: Txn[]; args: Uint8Array[]; runtime: Runtime; constructor(state: State, tx: Txn, gtxs: Txn[], args: Uint8Array[], runtime: Runtime); assertMinBalance(amt: bigint, address: string): void; assertAssetNotFrozen(assetIndex: number, address: AccountAddress): void; /** * Fetches account from `runtime.ctx` * @param address account address */ getAccount(address: string): StoreAccountI; /** * Returns asset creator account from runtime.ctx or throws error is it doesn't exist * @param Asset Index */ getAssetAccount(assetId: number): StoreAccountI; /** * Returns Asset Definitions * @param assetId Asset Index */ getAssetDef(assetId: number): AssetDef; /** * Returns Asset Holding from an account * @param assetIndex Asset Index * @param address address of account to get holding from */ getAssetHolding(assetIndex: number, address: AccountAddress): AssetHoldingM; /** * Fetches app from `ctx state` * @param appId Application Index' * @param line Line number in teal file */ getApp(appId: number, line?: number): SSCAttributesM; transferAlgo(txnParam: AlgoTransferParam): void; /** * Deduct transaction fee from sender account. * @param sender Sender address * @param index Index of current tx being processed in tx group */ deductFee(sender: AccountAddress, index: number): void; transferAsset(txnParam: AssetTransferParam): void; /** * https://developer.algorand.org/docs/features/asa/#modifying-an-asset * Modifies asset fields * @param assetId Asset Index * @param fields Asset modifying fields */ modifyAsset(assetId: number, fields: AssetModFields): void; /** * https://developer.algorand.org/docs/features/asa/#freezing-an-asset * Freezes assets for a target account * @param assetId asset index * @param freezeTarget target account * @param freezeState target state */ freezeAsset(assetId: number, freezeTarget: string, freezeState: boolean): void; /** * https://developer.algorand.org/docs/features/asa/#revoking-an-asset * Revoking an asset for an account removes a specific number of the asset * from the revoke target account. * @param recipient asset receiver address * @param assetId asset index * @param revocationTarget revoke target account * @param amount amount of assets */ revokeAsset(recipient: string, assetID: number, revocationTarget: string, amount: bigint): void; /** * https://developer.algorand.org/docs/features/asa/#destroying-an-asset * Destroy asset * @param assetId asset index */ destroyAsset(assetId: number): void; /** * Delete application from account's state and global state * @param appId Application Index */ deleteApp(appId: number): void; /** * Closes application from account's state * @param sender Sender address * @param appId application index */ closeApp(sender: AccountAddress, appId: number): void; /** * Process transactions in ctx * - Runs TEAL code if associated with transaction * - Executes the transaction on ctx * Note: we're doing this because if any one tx in group fails, * then it does not affect runtime.store, otherwise we just update * store with ctx (if all transactions are executed successfully). * @param txnParams Transaction Parameters */ processTransactions(txnParams: ExecParams[]): void; }