@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
67 lines (66 loc) • 1.99 kB
TypeScript
import { StarknetModule } from "../StarknetModule";
import { StarknetAction } from "../StarknetAction";
export declare class StarknetTokens extends StarknetModule {
static readonly ERC20_STRK = "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d";
static readonly GasCosts: {
TRANSFER: {
l1DataGas: number;
l2Gas: number;
l1Gas: number;
};
APPROVE: {
l1DataGas: number;
l2Gas: number;
l1Gas: number;
};
};
private getContract;
/**
* Action for transferring the erc20 token
*
* @param signer
* @param recipient
* @param token
* @param amount
* @private
*/
private Transfer;
/**
* Approves spend of tokens for a specific spender
*
* @param signer
* @param spender
* @param token
* @param amount
* @private
*/
Approve(signer: string, spender: string, token: string, amount: bigint): StarknetAction;
/**
* Checks if the provided string is a valid starknet token
*
* @param token
*/
isValidToken(token: string): boolean;
/**
* Returns the token balance of the address
*
* @param address
* @param token
*/
getTokenBalance(address: string, token: string): Promise<bigint>;
/**
* Returns the native currency address
*/
getNativeCurrencyAddress(): string;
/**
* Creates transactions for sending the over the tokens
*
* @param signer
* @param token token to send
* @param amount amount of the token to send
* @param recipient recipient's address
* @param feeRate fee rate to use for the transactions
* @private
*/
txsTransfer(signer: string, token: string, amount: bigint, recipient: string, feeRate?: string): Promise<import("./StarknetTransactions").StarknetTx[]>;
}