@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
85 lines • 4.69 kB
TypeScript
/// <reference types="node" resolution-mode="require"/>
import { Call, Contract } from 'starknet';
import { Address, Domain, Numberish } from '@hyperlane-xyz/utils';
import { BaseStarknetAdapter } from '../../app/MultiProtocolApp.js';
import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider.js';
import { ChainName } from '../../types.js';
import { TokenMetadata } from '../types.js';
import { IHypTokenAdapter, ITokenAdapter, InterchainGasQuote, TransferParams, TransferRemoteParams } from './ITokenAdapter.js';
export declare class StarknetTokenAdapter extends BaseStarknetAdapter implements ITokenAdapter<Call> {
readonly chainName: ChainName;
readonly multiProvider: MultiProtocolProvider;
readonly addresses: {
warpRouter: Address;
};
readonly contract: Contract;
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
warpRouter: Address;
});
getBalance(address: Address): Promise<bigint>;
getMetadata(_isNft?: boolean): Promise<TokenMetadata>;
getMinimumTransferAmount(_recipient: Address): Promise<bigint>;
isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise<boolean>;
isRevokeApprovalRequired(_owner: Address, _spender: Address): Promise<boolean>;
populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise<Call>;
populateTransferTx({ weiAmountOrId, recipient, }: TransferParams): Promise<Call>;
getTotalSupply(): Promise<bigint | undefined>;
}
export declare class StarknetHypSyntheticAdapter extends StarknetTokenAdapter implements IHypTokenAdapter<Call> {
readonly chainName: ChainName;
readonly multiProvider: MultiProtocolProvider;
readonly addresses: {
warpRouter: Address;
};
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
warpRouter: Address;
});
isApproveRequired(_owner: Address, _spender: Address, _weiAmountOrId: Numberish): Promise<boolean>;
isRevokeApprovalRequired(_owner: Address, _spender: Address): Promise<boolean>;
getDomains(): Promise<Domain[]>;
getRouterAddress(domain: Domain): Promise<Buffer>;
getAllRouters(): Promise<Array<{
domain: Domain;
address: Buffer;
}>>;
getBridgedSupply(): Promise<bigint | undefined>;
quoteTransferRemoteGas(destination: Domain): Promise<InterchainGasQuote>;
populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }: TransferRemoteParams): Promise<Call>;
}
export declare class StarknetHypCollateralAdapter extends StarknetHypSyntheticAdapter {
readonly collateralContract: Contract;
protected wrappedTokenAddress?: Address;
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
warpRouter: Address;
});
protected getWrappedTokenAddress(): Promise<Address>;
protected getWrappedTokenAdapter(): Promise<StarknetHypSyntheticAdapter>;
getBridgedSupply(): Promise<bigint | undefined>;
getMetadata(isNft?: boolean): Promise<TokenMetadata>;
isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise<boolean>;
populateApproveTx(params: TransferParams): Promise<Call>;
populateTransferTx(params: TransferParams): Promise<Call>;
}
export declare class StarknetHypNativeAdapter extends StarknetHypSyntheticAdapter {
readonly collateralContract: Contract;
readonly nativeContract: Contract;
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
warpRouter: Address;
});
getBalance(address: Address): Promise<bigint>;
isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise<boolean>;
populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise<Call>;
populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }: TransferRemoteParams): Promise<Call>;
}
export declare class StarknetHypFeeAdapter extends StarknetHypSyntheticAdapter {
readonly collateralContract: Contract;
readonly feeTokenContract: Contract;
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
warpRouter: Address;
});
getBalance(address: Address): Promise<bigint>;
isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise<boolean>;
populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise<Call>;
populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }: TransferRemoteParams): Promise<Call>;
}
//# sourceMappingURL=StarknetTokenAdapter.d.ts.map