37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
var createWalletEvents = () => ({
|
|
events: {},
|
|
emit(event, ...args) {
|
|
for (let i of this.events[event] || []) {
|
|
i(...args);
|
|
}
|
|
},
|
|
on(event, cb) {
|
|
(this.events[event] = this.events[event] || []).push(cb);
|
|
return () =>
|
|
(this.events[event] = this.events[event].filter((i) => i !== cb));
|
|
},
|
|
once(event, cb) {
|
|
var callback = (...args) => {
|
|
this.events[event] = this.events[event].filter((i) => i !== callback);
|
|
cb(...args);
|
|
};
|
|
(this.events[event] = this.events[event] || []).push(callback);
|
|
},
|
|
listen(event, cb) {
|
|
(this.events[event] = this.events[event] || []).push(cb);
|
|
return () =>
|
|
(this.events[event] = this.events[event].filter((i) => i !== cb));
|
|
},
|
|
remove(event, cb) {
|
|
this.events[event] = this.events[event].filter((i) => i !== cb);
|
|
},
|
|
});
|
|
|
|
export { createWalletEvents };
|
|
|
|
export const WALLET_CHAIN_CHANGE = "wallet_chain_change";
|
|
|
|
export const WALLET_ACCOUNT_CHANGE = "wallet_account_change";
|
|
|
|
export const WALLET_TOKEN_TYPE_CHANGE = "wallet_token_type_change";
|