@bananahq/banana-sdk
Version:
Smart contract wallet sdk package by Banana Wallet
57 lines (56 loc) • 2.38 kB
TypeScript
import { Signer, ethers } from "ethers";
import { MyWalletApi } from "./MyWalletApi";
import { HttpRpcClient } from "@account-abstraction/sdk/dist/src/HttpRpcClient";
import { Chains } from "./Constants";
import { ClientConfig, ChainConfig, PaymasterOptions } from "./interfaces/Banana.interface";
import { Web3Provider } from "@ethersproject/providers";
import { Wallet } from "./BananaWallet";
import { Banana4337Provider } from "./Banana4337Provider";
export declare class Banana {
readonly chain: Chains;
readonly signerOrProvider: Signer | Web3Provider;
readonly _paymasterOptions?: PaymasterOptions[] | undefined;
signer: Signer;
provider: Web3Provider;
Provider: ClientConfig;
accountApi: MyWalletApi;
httpRpcClient: HttpRpcClient;
jsonRpcProvider: ethers.providers.JsonRpcProvider;
walletAddress: string;
bananaProvider: Banana4337Provider;
jsonRpcProviderUrl: string;
addresses: ChainConfig;
network: Chains;
currentPaymasterOption: PaymasterOptions | undefined;
constructor(chain: Chains, signerOrProvider: Signer | Web3Provider, _paymasterOptions?: PaymasterOptions[] | undefined);
/**
* @method getTouchIdSafeWalletContractProxyFactory
* @params { Signer | JsonRpcProvider } signerOrProvider
* @returns { BananaAccountProxyFactory } TouchIdSafeWalletContractProxyFactory
* create factory contract instance for factory contract factory types.
*/
private getTouchIdSafeWalletContractProxyFactory;
/**
* @method getBananaProvider
* @params none
* @returns { ERC4337EthersProvider } bananaProvider
* create ERC4337Provider instance of user's smart contract wallet. Used as BananaProvider.
*/
getBananaProvider: () => Promise<Banana4337Provider>;
/**
* @method getTouchIdSafeWalletContractInitializer
* @params none
* @returns { string } TouchIdSafeWalletContractInitializer
* create initializer which is callData for setupWithEntrypoint function
*/
private getTouchIdSafeWalletContractInitializer;
/**
* @method connectWallet
* @param none
* @returns
* sucess: returns wallet: BananaWallet
* error: returns error
* setup signers and provider along with it create walletmetadata corresponding to the new wallet request.
*/
connectWallet: () => Promise<Wallet>;
}