import { Account } from './account'; import { Near } from './near'; import { KeyStore } from './key_stores'; import { FinalExecutionOutcome } from './providers'; import { Transaction, Action } from './transaction'; import { PublicKey } from './utils'; import { Connection } from './connection'; interface SignInOptions { contractId?: string; methodNames?: string[]; successUrl?: string; failureUrl?: string; newTab?: boolean; returnUrl?: boolean; } /** * Information to send NEAR wallet for signing transactions and redirecting the browser back to the calling application */ interface RequestSignTransactionsOptions { /** list of transactions to sign */ transactions: Transaction[]; /** url NEAR Wallet will redirect to after transaction signing is complete */ callbackUrl?: string; /** meta information NEAR Wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param */ meta?: string; } /** * This class is used in conjunction with the {@link BrowserLocalStorageKeyStore}. * It redirects users to {@link https://docs.near.org/docs/tools/near-wallet | NEAR Wallet} for key management. * * @example {@link https://docs.near.org/docs/develop/front-end/naj-quick-reference#wallet} * @example * ```js * // create new WalletConnection instance * const wallet = new WalletConnection(near, 'my-app'); * * // If not signed in redirect to the NEAR wallet to sign in * // keys will be stored in the BrowserLocalStorageKeyStore * if(!wallet.isSingnedIn()) return wallet.requestSignIn() * ``` */ export declare class WalletConnection { /** @hidden */ _walletBaseUrl: string; /** @hidden */ _authDataKey: string; /** @hidden */ _keyStore: KeyStore; /** @hidden */ _authData: any; /** @hidden */ _networkId: string; /** @hidden */ _near: Near; /** @hidden */ _connectedAccount: ConnectedWalletAccount; constructor(near: Near, appKeyPrefix: string | null); /** * Returns true, if this WalletAccount is authorized with the wallet. * @example * ```js * const wallet = new WalletConnection(near, 'my-app'); * wallet.isSignedIn(); * ``` */ isSignedIn(): boolean; /** * Returns authorized Account ID. * @example * ```js * const wallet = new WalletConnection(near, 'my-app'); * wallet.getAccountId(); * ``` */ getAccountId(): any; /** * Redirects current page to the wallet authentication page. * @param options An optional options object * @param options.contractId The NEAR account where the contract is deployed * @param options.successUrl URL to redirect upon success. Default: current url * @param options.failureUrl URL to redirect upon failure. Default: current url * * @example * ```js * const wallet = new WalletConnection(near, 'my-app'); * // redirects to the NEAR Wallet * wallet.requestSignIn({ contractId: 'account-with-deploy-contract.near' }); * ``` */ requestSignIn(contractIdOrOptions?: string | SignInOptions, title?: string, successUrl?: string, failureUrl?: string): Promise; /** * Requests the user to quickly sign for a transaction or batch of transactions by redirecting to the NEAR wallet. */ requestSignTransactions(options: RequestSignTransactionsOptions): Promise; /** * @deprecated * Requests the user to quickly sign for a transaction or batch of transactions by redirecting to the NEAR wallet. * @param transactions Array of Transaction objects that will be requested to sign * @param callbackUrl The url to navigate to after the user is prompted to sign */ requestSignTransactions(transactions: Transaction[], callbackUrl?: string, meta?: string): Promise; private _requestSignTransactions; /** * @hidden * Complete sign in for a given account id and public key. To be invoked by the app when getting a callback from the wallet. */ _completeSignInWithAccessKey(): Promise; /** * @hidden * @param accountId The NEAR account owning the given public key * @param publicKey The public key being set to the key store */ _moveKeyFromTempToPermanent(accountId: string, publicKey: string): Promise; /** * Sign out from the current account * @example * walletAccount.signOut(); */ signOut(): void; /** * Returns the current connected wallet account */ account(): ConnectedWalletAccount; } export declare const WalletAccount: typeof WalletConnection; /** * {@link Account} implementation which redirects to wallet using {@link WalletConnection} when no local key is available. */ export declare class ConnectedWalletAccount extends Account { walletConnection: WalletConnection; constructor(walletConnection: WalletConnection, connection: Connection, accountId: string); /** * Sign a transaction by redirecting to the NEAR Wallet * @see {@link WalletConnection.requestSignTransactions} */ protected signAndSendTransaction(...args: any[]): Promise; private _signAndSendTransaction; /** * Check if given access key allows the function call or method attempted in transaction * @param accessKey Array of {access_key: AccessKey, public_key: PublicKey} items * @param receiverId The NEAR account attempting to have access * @param actions The action(s) needed to be checked for access */ accessKeyMatchesTransaction(accessKey: any, receiverId: string, actions: Action[]): Promise; /** * Helper function returning the access key (if it exists) to the receiver that grants the designated permission * @param receiverId The NEAR account seeking the access key for a transaction * @param actions The action(s) sought to gain access to * @param localKey A local public key provided to check for access * @returns Promise */ accessKeyForTransaction(receiverId: string, actions: Action[], localKey?: PublicKey): Promise; } export {};