본문으로 건너뛰기

이벤트 및 provider state

사용자가 account, network, lock state 또는 UTXO state를 변경할 때 app이 동기화되도록 provider event를 listen하세요.

EVM event

window.ethereum.on('accountsChanged', (accounts) => {
console.log('EVM accounts', accounts);
});

window.ethereum.on('chainChanged', (chainId) => {
console.log('EVM chain', chainId);
});

window.ethereum.on('disconnect', (error) => {
console.warn('Provider disconnected', error);
});

Pali custom event

Pali는 extension provider가 사용하는 custom wallet notification도 emit합니다.

Event의미
pali_accountsChanged연결된 account가 변경되었습니다.
pali_chainChangedactive chain이 변경되었습니다.
pali_unlockStateChangedwallet lock state가 변경되었습니다.
pali_isBitcoinBasedactive UTXO family가 변경되었습니다.
pali_xpubChanged연결된 UTXO xpub이 변경되었습니다.
pali_blockExplorerChangedactive UTXO explorer가 변경되었습니다.

Provider state method

const evmState = await window.ethereum.request({
method: 'wallet_getProviderState',
});

const sysState = await window.pali.request({
method: 'wallet_getSysProviderState',
});

Provider state는 initialization에 유용하지만, 이를 명시적인 account permission check의 대체물로 취급하지 마세요.