Add new component WalletEmbed to handle tx requests via iframe messaging #18

Merged
nabarun merged 16 commits from deep-stack/laconic-wallet-web:ag-iframe into main 2024-11-12 09:46:17 +00:00
Showing only changes of commit a1cc6307cf - Show all commits

View File

@ -18,51 +18,6 @@ import { createTheme, ThemeProvider } from "@mui/material";
globalThis.Buffer = Buffer;
window.addEventListener('message', (event: MessageEvent) => {
if (event.origin !== 'http://localhost:3000') return;
if (event.data.type === 'REQUEST_WALLET_ACCOUNTS') {
try {
let accountsData = '';
const indices = localStorage.getItem(`addAccountCounter/cosmos:${event.data.chainId}`);
for (let i = 0; i < Number(indices); i++) {
const account = localStorage.getItem(`accounts/cosmos:${event.data.chainId}/${i}`);
if (account) {
accountsData += `${account},`;
}
}
// Remove trailing comma
accountsData = accountsData.slice(0, -1);
if (!accountsData) {
event.source?.postMessage({
type: 'ERROR',
message: 'Wallet accounts not found in local storage',
});
return;
}
const elements = accountsData.split(',');
const addresses = elements.filter((_, index) => (index + 1) % 4 === 0);
(event.source as Window)?.postMessage(
{
type: 'WALLET_ACCOUNTS_DATA',
data: addresses,
},
'http://localhost:3000'
);
} catch (error) {
(event.source as Window)?.postMessage({
type: 'ERROR',
message: 'Error accessing wallet accounts data'
}, 'http://localhost:3000');
}
}
});
const linking = {
prefixes: ["https://wallet.laconic.com"],
};