Abstract Wallet
The base class for any wallet in the Wallet SDK, including backend wallets. It contains the functionality common to all wallets.
This wallet is not meant to be used directly, but instead be extended to build your own wallet.
Usage
export class MyCustomWallet extends AbstractWallet {
async getSigner(): Promise<Signer> {
// your implementation
}
}
Public Methods
getAddress
Get the address of the currently connected wallet.
const address = await wallet.getAddress();
Configuration
Return Value
Returns a string
containing the wallet address, or undefined
if the connection failed.
string | undefined;
getChainId
Get the chain ID of the network the wallet is currently connected to.
const chainId = await wallet.getChainId();
Configuration
Return Value
Returns a number
containing the chain ID, or undefined
if there is no connected wallet.
number | undefined;
transfer
Transfer native or ERC20 tokens from this wallet to another wallet
// for native tokens
const txResult = await wallet.transfer(recipientAddress, amount);
// for ERC20 tokens
const txResult = await wallet.transfer(recipientAddress, amount, tokenAddress);
Configuration
getBalance
Get the the native token balance or ERC20 token balance of the wallet.
// for native token balance
const balance = await wallet.getBalance();
// for ERC20 token balance
const balance = await wallet.getBalance(tokenAddress);
Configuration
getSigner
Get the signer
for the currently connected wallet.
const signer = await wallet.getSigner();
signMessage
Sign a message with the currently connected wallet. This function must be implemented by the parent class.
const signature = await wallet.signMessage("Hello world!");
Configuration
verifySignature
Verify a signature is valid.
const isValid = await wallet.verifySignature(
"Message",
"Signature",
"wallet_address",
);
Configuration
Events
Abstract Wallet implements EventEmitter, and emits useful events to track the connection lifecycle.
wallet.on("connect", {
console.log("connected");
});
Configuration
eventName
The name of the event to listen for.
Each event returns a different data
object, or no data
object at all.
Possible options:
change
User changes the wallet they are connected with, or the chain they are connected to.
Data available:
{
address: string;
chainId: number;
}
connect
User connects their wallet to your app.
Data available:
{
address: string;
chainId: number;
}
disconnect
User disconnects their wallet from your app.
No data
is available.
error
An error occurs in the wallet.
Data available:
{
cause: unknown;
message: string;
name: string;
stack: string | undefined;
}
message
Wallet receives some message that the consumer should be notified of. The kind of message is identified by the type
field.
Data available:
{
type: string;
data: unknown;
}
open_wallet
User opens the wallet app.
data
is a string | undefined
.
request
Wallet receives some request that the consumer should be notified of. The kind of request is identified by the type
field.
No data
is available.
callback
The function to run when the event is emitted.