UNPKG

@kanalabs/mirai

Version:

Mirai - Account Abstraction SDK (EVM + non-EVM)

168 lines (141 loc) 10.9 kB
# Mirai > **Mirai** - Account Abstraction SDK (EVM + non-EVM) ## Installation `npm i @kanalabs/mirai` ## Supported Networks #### Mainnets: - AptosMainnet - mainnet (Ethereum) - polygon - optimism - linea - gnosis - mantle - avalanche - base - bsc - klaytn - scroll - flare - bifrost #### Testnets: - AptosTestnet - bscTestnet - KlaytnTestnet - ScrollSepolia - FuseSparknet - goerli - mumbai - sepolia - flareTestnet - bifrostTestnet ## Available Properties in SDKGateway | Properties | Description | | --------------- | ------------------------------------------------------- | | instances | Returns all initialized instances | | currentNetwork | Returns the current default network | | currentInstance | Returns the current default SDK instance | | contractAddress | Returns KanaWallet address for initialized chains | | walletProvider | Returns the wallet provider which used to init the sdk | | activeNetworks | Returns available networks with their respective status | ## Available Methods in SDKGateway | Methods | Description | | --------------------------------------------------|--------------------------------------------------------| | initialize(network?: NetworkNames) | To initialize the SDK instance specify a network,and | | | and return the result of initialization. | | getNativeBalance(network?: NetworkNames) | To get the native token balance of the smart wallet. | | | Returns native token balance. | | setCurrentInstance(network: NetworkNames) | To set the default SDK instance and retrieve the SDK | | | instance associated with the specified network. | | erc20(tokenAddress: string,network?: NetworkNames)| To get the ERC20 token instance for building ERC20 | | | transactions. Returns the ERC20 contract instance. | | erc721(collectionAddress: string, | To get the ERC721 collection instance for building | | network?: NetworkNames) | ERC721 transactions.Returns the ERC721 contractinstance| | erc1155(collectionAddress: string, | To get the ERC1155 collection instance for building | | network?: NetworkNames) | ERC1155 transactions. Returns the ERC1155 contract | | instance transactions.Returns the ERC721 | isNetworkActive(networkName: string): boolean | To check if the given network is available and active. | | | Returns bool | | | Example const isActive = isNetworkActive (networkName) | | | transactions. Returns the ERC20 contract instance. | | getProvider(network: NetworkNames) | To get the RPC Provider for the given network. | | providers.JsonRpcProvider | Returns providers.JsonRpcProvider | | | Example const provider = getProvider(networkName) | | destroy(network: NetworkNames) | To destroy the SDK instance specifying a network for | | | destruction, or destroying all instances if no network | | | is provided. | | | Example const provider = getProvider(networkName) | | getAptosInstance(network: NetworkNames) | To get the RPC Provider for the given network. | | | Retrieve the Aptos SDK instance | ## Available Methods in SDK | Methods | Description | | --------------------------------------------------|--------------------------------------------------------| | getCounterFactualAddress(): Promise<string> | To get the KanaWallet address | | signMessage(dto: SignMessageDto): Promise<string> | To sign a message | | getNativeBalance(): Promise<string> | To get the native token balance of the wallet | | getTokenBalance(tokenAddress: string) | To get the ERC20 token balance of the wallet | | : Promise<string> | | | addUserOpsToBatch(tx: UserOpsRequest) | To add transactions to the batch | | : Promise<BatchUserOpsRequest> | | | clearUserOpsFromBatch(): Promise<void> | To clear the transactions in the batch | | estimate(gasDetails?: TransactionGasInfoForUserOp)| To estimate transactions added to the batch and get the| | : Promise<UserOperationStruct> | fee data for the UserOp | | send(userOp: UserOperationStruct): Promise<string>| To sign the UserOp and send it to the bundler . | | Returns userOp | | createSession(dto?: CreateSessionDto) | To sign create a session | | : Promise<Session> | | | getUserOpReceipt(userOpHash: string) | To get the transaction hash | | getGasFee(): Promise<Gas> | To get the Gas data | | destroy(): void | To destroy the instance | ## Helpers ### Available Properties in ERC20 | Properties | Description | | ----------------- | ----------------------------------------------------------------- | | name | Returns the name of the token | | symbol | Returns the symbol (ticker) of the token. | | decimals | Returns the number of decimal places that the token uses | | totalSupply | Returns the total supply of the token in its smallest units. | | balanceOf | Returns the token balance of a specific address (owner) | | allowance | Returns the amount of tokens that the spender is allowed to spend | | approve | Allows the owner to approve a spender to spend | | decreaseAllowance | Decreases the amount of tokens that a spender is allowed to spend | | increaseAllowance | Increases the amount of tokens that a spender is allowed | | transfer | Allows the sender to transfer a certain amount of tokens | | transferFrom | Allows the spender to transfer a certain amount of tokens | ### Available Properties in ERC721 | Properties | Description | | ----------------- | ------------------------------------------------------------------ | | name | Returns the name of the NFT contract | | symbol | Returns the symbol (ticker) of the NFT contract | | balanceOf | Returns the number of NFTs owned by a specific address (owner). | | ownerof | Returns the address of the owner of a specific NFT identified | | getApproved | Returns the address that has been approved to take ownership | | isApprovedForAll | Returns whether a specific operator address is approved | | tokenURI | Returns the metadata URI associated with a specific NFT identified | | safeTransferFrom | Safely transfers the ownership of a specific NFT from the sender | | transferFrom | Transfers the ownership of a specific NFT | | approve | Approves another address (to) to take ownership of a specific NFT | | setApprovalForAll | Sets or revokes operator status for an address to manage all NFTs | ### Available Properties in ERC1155 | Properties | Description | | --------------------- | ---------------------------------------------------------------- | | balanceOf | Returns the amount of tokens of token type id owned by account | | balanceOfBatch | Returns the balances of multiple token IDs for multiple accounts | | setApprovalForAll | Grants permission to operator to transfer tokens | | isApprovedForAll | Returns true if operator is approved to transfer tokens. | | safeTransferFrom | Safely transfers specific token type and quantity | | safeBatchTransferFrom | Safely transfers multiple token types and quantities | | uri | Returns the URI of that tokenId | ### Available Properties in DATASERVICE | Properties | Description | | --------------------- | ---------------------------------------------------------------- | | getAccountBalances | Returns the account balances for the particular address | | getTransaction | Returns the transaction history for the particular transactions | | getNftsList | Returns the nfts list for the particular address | ### Available Properties in PAYMASTER | Properties | Description | | --------------------- | -------------------------------------------------------------------------| | addWhitelist | To add a whitelist using the specified accountAddress and chain ID | | checkWhitelist | To check a whitelist using the specified accountAddress and chain ID | | depositWhitelist | To Deposit using the specified amount and chain ID | | getSponsorBalance | To get a sponsor balance using the specified sponsorAddress and chain ID |