UNPKG

@rize-labs/banana-wallet-sdk-astar-test

Version:

Smart contract wallet sdk package by Banana Wallet

134 lines (133 loc) 4.88 kB
import { ethers } from "ethers"; import { MyWalletApi } from "./MyWalletApi"; import { HttpRpcClient } from "@account-abstraction/sdk/dist/src/HttpRpcClient"; import { Chains } from "./Constants"; import { BananaSigner } from "./BananaSigner"; import { BananaCookie } from "./BananaCookie"; import { PublicKey, ClientConfig, UserCredentialObject, ChainConfig } from "./interfaces/Banana.interface"; import { Wallet } from "./BananaWallet"; import { Banana4337Provider } from "./Banana4337Provider"; export declare class Banana { #private; readonly chain: Chains; Provider: ClientConfig; SCWContract: ethers.Contract; TouchIdSafeWalletContract: ethers.Contract; accountApi: MyWalletApi; httpRpcClient: HttpRpcClient; publicKey: PublicKey; bananaSigner: BananaSigner; jsonRpcProvider: ethers.providers.JsonRpcProvider; walletAddress: string; bananaProvider: Banana4337Provider; cookieObject: UserCredentialObject; cookie: BananaCookie; walletIdentifier: string; jsonRpcProviderUrl: string; addresses: ChainConfig; network: Chains; constructor(chain: Chains); /** * @method getTouchIdSafeWalletContractProxyFactory * @params { Signer | JsonRpcProvider } signerOrProvider * @returns { BananaAccountProxyFactory } TouchIdSafeWalletContractProxyFactory * create factory contract instance for factory contract factory types. */ private getTouchIdSafeWalletContractProxyFactory; /** * @method setCookieAfterAddressCreation * @params { string } walletIdentifier * @returns none * Set cookie to local and global storage after wallet creation. */ private setCookieAfterAddressCreation; /** * @method createSignerAndCookieObject * @params { string } walletIdentifier * @returns none * Create cookie object and create secure enclave based transaction signer for user's wallet. */ private createSignerAndCookieObject; getAddress(): string; getUsernameRequestStatus(): boolean; /** * @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 createWallet * @param { string } walletIdentifier * @returns * sucess: returns { status: success, address: walletAddress } * error: returns { status: error, address: "" } * setup signers and provider along with it create walletmetadata corresponding to the new wallet request. */ createWallet: () => Promise<Wallet>; /** * @method connectWallet * @param { string } walletIdentifier * @returns * sucess: returns { status: success, address: walletAddress } * error: returns { status: error, address: "" } * setup providers and signers at the sdk end in case user's already has a wallet created before. */ connectWallet: (walletIdentifier: string) => Promise<Wallet>; /** * @method resetWallet * @param none * @returns { string } walletName * method to remove current wallet metadata from browser */ resetWallet: () => { success: boolean; error?: undefined; } | { success: boolean; error: unknown; }; /** * @method getWalletName * @param none * @returns { string } walletName * method to getWalletName stored in user's cookie storage against bananaUser key */ getWalletName: () => any; /** * @method getOwnerAddress * @param { string } walletName * @returns { string } eoaAddress * method to return the hardware address for a specific walletName. */ getEOAAddress: () => Promise<any[]>; /** * @method verify * @param { string } signaure, { string } messageSigned, { string } eoaAddress * @returns { boolean } isVerified * method to verify message against signature */ verifySignature: (signature: string, messageSigned: string, eoaAddress: any) => Promise<boolean>; /** * @method postCookieChecks * @param { string } walletIdentifier * @returns none * handles cookie update */ private postCookieChecks; /** * @method isWalletNameUnique * @param { string } walletName * @returns { boolean } isWalletNameTaken * check isWalletName user is giving is already taken or not */ isWalletNameUnique: (walletName: string) => Promise<boolean>; }