(async () => { const lodePublicApi = { apiVersion: "0.1.0", name: "LodeWallet", icon: "data:image/png;base64,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nR6hcpIyx6q8ZWyll5RWx/OsMVWdGlKole39f8OXCPNJIu6jew+AdBOi2Dhtbu1DXk6n/Ug/wg+v/wCv0rzsnJyetXNVjvItVuk1Dd9rEh80v1LVTqMJQVOHNe8pat9/+B2CpLmduiCiiiuogKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAClVmRgykhgcgg8g0lFAG3qWqR65YRzXZC6nbqEaT/nunbP+0P1FYlFFRTpqmuWOw276sKKKKsQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/9l+tClTAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTA0LTE1VDIwOjEyOjEzKzAwOjAw7wxllgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wNC0xNVQyMDoxMTo1NSswMDowMJL8XekAAAAadEVYdGV4aWY6Qml0c1BlclNhbXBsZQA4LCA4LCA4Eu0+JwAAABF0RVh0ZXhpZjpDb2xvclNwYWNlADEPmwJJAAAAIXRFWHRleGlmOkRhdGVUaW1lADIwMjI6MDQ6MTUgMTY6MDI6MjNT+Td+AAAAE3RFWHRleGlmOkV4aWZPZmZzZXQAMTkwTI7zwgAAABV0RVh0ZXhpZjpJbWFnZUxlbmd0aAAyMDk1N9FSrwAAABR0RVh0ZXhpZjpJbWFnZVdpZHRoADIwOTWkC9EiAAAAGnRFWHRleGlmOlNvZnR3YXJlAEdJTVAgMi4xMC4zMB8Lt4MAAAAkdEVYdGV4aWY6dGh1bWJuYWlsOkJpdHNQZXJTYW1wbGUAOCwgOCwgOCAb9FMAAAAcdEVYdGV4aWY6dGh1bWJuYWlsOkNvbXByZXNzaW9uADb5ZXBXAAAAHnRFWHRleGlmOnRodW1ibmFpbDpJbWFnZUxlbmd0aAAyNTZQcDADAAAAHXRFWHRleGlmOnRodW1ibmFpbDpJbWFnZVdpZHRoADI1NogG+hQAAAAodEVYdGV4aWY6dGh1bWJuYWlsOkpQRUdJbnRlcmNoYW5nZUZvcm1hdAAzMjiXx+HBAAAAL3RFWHRleGlmOnRodW1ibmFpbDpKUEVHSW50ZXJjaGFuZ2VGb3JtYXRMZW5ndGgANzM2MDkQA5gAAAAqdEVYdGV4aWY6dGh1bWJuYWlsOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24ANhIVihoAAAAgdEVYdGV4aWY6dGh1bWJuYWlsOlNhbXBsZXNQZXJQaXhlbAAz4dfNWgAAABt0RVh0aWNjOmNvcHlyaWdodABQdWJsaWMgRG9tYWlutpExWwAAACJ0RVh0aWNjOmRlc2NyaXB0aW9uAEdJTVAgYnVpbHQtaW4gc1JHQkxnQRMAAAAVdEVYdGljYzptYW51ZmFjdHVyZXIAR0lNUEyekMoAAAAOdEVYdGljYzptb2RlbABzUkdCW2BJQwAAAAl0RVh0dW5rbm93bgAx2iFVfAAAAABJRU5ErkJggg==", enable: async function enable() { const isEnabled = await __postMessage(["LodePublic_Enable", "stub"]); if (isEnabled) { return lodePrivateApi; } }, isEnabled: async function isEnabled() { return await __postMessage(["LodePublic_IsEnabled", "stub"]); }, }; const lodePrivateApi = { getUsedAddresses: async function getUsedAddresses(paginate = null) { return await __postMessage(["LodePublic_GetUsedAddressesCBOR", paginate]); }, getBalance: async function getBalance() { return await __postMessage(["LodePublic_GetBalanceCBOR", []]); }, getNetworkId: async function getNetworkId() { return await __postMessage(["LodePublic_GetNetworkId", []]); }, getUtxos: async function getUtxos(amount = null, paginate = null) { return await __postMessage(["LodePublic_GetUTxOCBOR", [amount, paginate]]); }, signTx: async function signTx(tx, ps) { return await __postMessage(["LodePublic_SignTx", ["stub", tx]]); }, submitTx: async function submitTx(tx) { return await __postMessage(["LodePublic_SubmitTx", tx]); }, getUnusedAddresses: async () => [], /* No unused addresses in single address */ getChangeAddress: async () => { return await __postMessage(["LodePublic_GetChangeAddressCBOR", []]); }, getRewardAddresses: async () => { return [await __postMessage(["LodePublic_GetRewardAddressCBOR", []])]; }, signData: async function signData(address, payload) { return await __postMessage(["LodePublic_SignData", ["stub", address, payload]]); }, /* TODO: remove this; here for backwards compat */ getRewardAddress: async () => { return await __postMessage(["LodePublic_GetRewardAddressCBOR", []]); }, /* TODO: remove this; here for backwards compat */ getCollateral: async function getCollateral() { return await __postMessage(["LodePublic_GetCollateralCBOR", []]); }, /* TODO: remove this; here for backwards compat */ onAccountChange: (cb) => { console.log("onAccountChange: NOT IMPLEMENTED") return { remove: () => console.log("REMOVE ACCOUNT CHANGE") } }, /* TODO: remove this; here for backwards compat */ onNetworkChange: (cb) => { console.log("onNetworkChange: NOT IMPLEMENTED") return { remove: () => console.log("REMOVE NETWORK CHANGE") } }, experimental: { getCollateral: async function getCollateral() { return await __postMessage(["LodePublic_GetCollateralCBOR", []]); }, on: (eventName, cb) => { console.log(".on not supported") }, off: (eventName, cb) => { console.log(".off not supported") } } }; const VERBOSE = false; function __log(msg) { if (VERBOSE) console.log(msg) }; function __notImplemented(name) { console.log("============== NOT IMPLEMENTED =====================" + name); return new Promise((res, rej) => rej("NOT IMPLEMENTED: "+name)) } function __postMessage(msg) { return new Promise((res, rej) => { const requestId = Math.random().toString(36).substr(2, 9); window.addEventListener('message', function responseHandler(e) { __log("INJECTED RECEIVE MESSAGE: " + (e.data || "")); __log(e); const response = e.data; if ( typeof response === 'undefined' || response === null || response.id === null || response.id !== requestId || response._sourceIsExtension !== true ) return; __log("INJECTED REMOVE MSG LISTENER"); window.removeEventListener('message', responseHandler); if (response.error) rej(response.error); else res(response.response); }); __log("INJECTED POST MESSAGE: " + (msg || "")); if (typeof AndroidBridge !== 'undefined') { AndroidBridge.sendDomMessage(JSON.stringify({ id: requestId, target: 'lode', data: msg })); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.iOSBridge) { /* iOS */ console.log("WEBKIT BROWSER FOUND"); window.webkit.messageHandlers.iOSBridge.postMessage(JSON.stringify({ id: requestId, target: 'lode', data: msg })); } else { window.postMessage({ id: requestId, target: 'lode', data: msg }); } }); } // Some messages are sent by the extension without a prompt // We listen for those here. Currently only used to check // the wallet identity again. window.addEventListener('message', async e => { __log("PROMPT RECEIVE MESSAGE: " + (e.data || "")); __log(e); const response = e.data; if ( typeof response === 'undefined' || response === null || response.id !== null || response.prompt === null || response.error !== null || response._sourceIsExtension !== true ) return; await setWalletIdentity(); }); const namiBackwardsCompat = Object.assign({}, lodePublicApi, lodePrivateApi); const setWalletIdentity = async () => { const rsp = await __postMessage(["LodePublic_GetWalletIdentity", []]); __log(rsp) switch(rsp) { case 'AccountWalletIdentity_LodeWallet': window.cardano = Object.assign( {}, window.cardano, { LodeWallet: lodePublicApi } ); break; case 'AccountWalletIdentity_Nami': if(window.cardano) delete window.cardano.LodeWallet; window.cardano = Object.assign( {}, window.cardano, namiBackwardsCompat, { nami: lodePublicApi } ); break; default: __log("UNKNOWN WALLET IDENTITY RESPONSE"); window.cardano = Object.assign( {}, window.cardano, { LodeWallet: lodePublicApi } ); break; } } await setWalletIdentity() })();