@gotake/gotake-sdk
Version:
SDK for interacting with GoTake blockchain contracts
90 lines • 2.92 kB
TypeScript
import { ethers } from 'ethers';
import { Provider } from '@ethersproject/providers';
import { BaseApi } from './base-api';
import { CreateTBAParams } from '../utils';
import { TransactionOptions } from '../types';
/**
* Account API module, providing Token Bound Account (TBA) related functionality
*/
export declare class AccountApi extends BaseApi {
private _registryWrapper;
private _tbaWrapper;
/**
* Create Account API instance
* @param provider Provider instance
* @param signer Signer instance
*/
constructor(provider: Provider, signer: ethers.Signer);
/**
* Calculate TBA address for an NFT (without creating the account)
* @param params Creation parameters
* @returns TBA address
*/
computeTBAAddress(params: CreateTBAParams): Promise<string>;
/**
* Create TBA account
* @param params Creation parameters
* @param options Transaction options
* @returns TBA address and transaction
*/
createTBA(params: CreateTBAParams, options?: TransactionOptions): Promise<{
tbaAddress: string;
tx: ethers.ContractTransaction;
}>;
/**
* Initialize TBA account
* @param params Initialization parameters
* @param options Transaction options
* @returns Transaction object
*/
initializeTBA(params: {
accountAddress: string;
chainId: number;
tokenContract: string;
tokenId: ethers.BigNumber | number | string;
}, options?: TransactionOptions): Promise<ethers.ContractTransaction>;
/**
* Get TBA information related to an NFT
* @param accountAddress TBA address
* @returns TBA information
*/
getTBAInfo(accountAddress: string): Promise<{
chainId: ethers.BigNumber;
tokenContract: string;
tokenId: ethers.BigNumber;
state: ethers.BigNumber;
}>;
/**
* Execute a transaction from TBA
* @param params Transaction parameters
* @param options Transaction options
* @returns Transaction result
*/
executeTBATransaction(params: {
accountAddress: string;
to: string;
value: ethers.BigNumber | number | string;
data: string;
}, options?: TransactionOptions): Promise<{
tx: ethers.ContractTransaction;
result: string;
}>;
/**
* Check if an address is a valid signer for a TBA
* @param accountAddress TBA address
* @param signerAddress Signer address
* @returns Whether it's a valid signer
*/
isValidSigner(accountAddress: string, signerAddress: string): Promise<boolean>;
/**
* Convert NetworkId to network key string
* @param networkId Network ID
* @returns Network key
*/
private getNetworkKey;
/**
* Handle connection update
*/
protected onConnectionUpdated(): Promise<void>;
}
//# sourceMappingURL=account-api.d.ts.map