@wallet-standard/ui-compare v1.0.0
@wallet-standard/ui-compare
This package includes types and functions useful for comparing wallet accounts to determine if they represent the same account in the same wallet.
Functions
getUiWalletAccountStorageKey()
Produces a stable string that can be used to uniquely identify a UiWalletAccount.
You can use this to identify a list item when rendering a list of accounts, or as a way to store your app's last selected account as a string in browser storage.
// When selecting an account in the UI
function onSelectAccount(account: UiWalletAccount) {
window.localStorage.set('lastSelectedAccount', getUiWalletAccountStorageKey(account));
}
// Later, when reloading the app
const savedAccountKey = window.localStorage.get('lastSelectedAccount');
const selectedAccount = wallets
.flatMap(({ accounts }) => accounts)
.find((account) => savedAccountKey === getUiWalletAccountStorageKey(account));uiWalletAccountsAreSame()
Given two UiWalletAccount objects, this method will tell you if they represent the same underlying WalletAccount.
const previousSelectedWalletAccount = usePrev(selectedWalletAccount);
useEffect(() => {
if (!uiWalletsAccountsAreSame(selectedWalletAccount, previousSelectedWalletAccount)) {
console.log('A new account was selected!');
}
}, [previousSelectedWalletAccount, selectedWalletAccount]);UiWalletAccount objects are meant to be used in client apps to render UI; they are not the actual underlying WalletAccount objects. In particular, they can change over time and you can not presume that two UiWalletAccount objects will be referentially equal – even though they represent the ‘same’ account.
!WARNING It is insufficient to compare two accounts on the basis of their addresses; it's possible for two different wallets to be configured with the same account. Use this method whenever you need to know for sure that two
UiWalletAccountobjects represent the same address and belong to the same underlyingWallet.
uiWalletAccountBelongsToUiWallet()
Given a UiWalletAccount, this method will tell you if the account belongs to a specific UiWallet.
!WARNING It's possible for two different wallets to be configured with the same account. Use this method whenever you need to know for sure that a
UiWalletAccountbelongs to a particularUiWallet.
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago