{"version":3,"sources":["../../src/message/index.ts","../../src/ui/modal/index.ts","../../src/index.ts"],"sourcesContent":["import { AccountAddress } from '@endlesslab/endless-ts-sdk';\r\nimport { AccountInfo, EndlessJsSdk, MethodName } from '../';\r\nimport { Modal, IframeID, ENDLESS_WALLET_COLOR_MODE_KEY, ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY } from '../ui/modal';\r\nimport type { IMessageData, EndLessSDKEventListenersType, EndLessSDKEventPayload, EndLessSDKEventType } from './types';\r\nimport { EndLessSDKEvent, PromiseMap } from './types';\r\nimport { getNetworkInfo } from '../utils';\r\n\r\nexport class PostMessage {\r\n  private static _instance: PostMessage;\r\n  static readonly ENDLESS_MESSAGE_TARGET = 'endless-web3-sdk';\r\n  static readonly ENDLESS_WALLET_TARGET = 'endless-wallet-sdk';\r\n  static promiseMap: PromiseMap = {};\r\n  private uuids: string[] = [];\r\n  callbacks: {\r\n    [key: string]: (data: unknown) => void;\r\n  } = {};\r\n  private listeners: EndLessSDKEventListenersType = {};\r\n\r\n  modal: Modal | null = null;\r\n\r\n  constructor(modal: Modal) {\r\n    if (PostMessage._instance) return PostMessage._instance;\r\n    this.modal = modal;\r\n    PostMessage._instance = this;\r\n    window.addEventListener('message', this.receive, false);\r\n  }\r\n  // wallet emit sdk\r\n  // SDK processing method itself\r\n  private readonly receive = (msg: MessageEvent) => {\r\n    console.log('receive msg: ', msg.data);\r\n    if (msg.data.target !== PostMessage.ENDLESS_MESSAGE_TARGET) return;\r\n    if (this.modal?.modalConfig?.url.indexOf(msg.origin) === -1) return;\r\n\r\n    const eventType = msg.data.methodName as EndLessSDKEventType | MethodName;\r\n    // sdk callbacks\r\n    if (this.uuids.includes(msg.data.uuid)) {\r\n      if (this.callbacks[msg.data.uuid + eventType]) {\r\n        this.callbacks[msg.data.uuid + eventType](msg.data.data);\r\n        delete this.callbacks[msg.data.uuid + eventType];\r\n      }\r\n    }\r\n\r\n    // Some events are being monitored by dapp and require running a monitoring callback\r\n    switch (eventType) {\r\n      case EndLessSDKEvent.WALLET_INIT_LOAD: {\r\n        this.modal?.loaded();\r\n        break;\r\n      }\r\n      case EndLessSDKEvent.COLOR_MODE_CHANGE : {\r\n        if (this.modal) {\r\n          this.modal?.setWalletContainerColorMode({\r\n            colorMode: msg.data.data.colorMode,\r\n          });\r\n          localStorage.setItem(ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY, msg.data.data.colorMode);\r\n          localStorage.setItem(ENDLESS_WALLET_COLOR_MODE_KEY, msg.data.data.colorMode);\r\n          this.emit(eventType, msg.data.data);\r\n        }\r\n        break;\r\n      }\r\n      case EndLessSDKEvent.OPEN: {\r\n        if (this.modal) {\r\n          this.modal?.openModal();\r\n          this.emit(eventType, msg.data.data);\r\n        }\r\n        break;\r\n      }\r\n      case EndLessSDKEvent.CLOSE: {\r\n        if (this.modal) {\r\n          this.modal?.closeModal();\r\n          this.emit(eventType, msg.data.data);\r\n        }\r\n        break;\r\n      }\r\n\r\n      case EndLessSDKEvent.NETWORK_CHANGE: {\r\n        const network = msg.data.data.network;\r\n        this.emit(eventType, getNetworkInfo(network));\r\n        break;\r\n      }\r\n\r\n      // wallet to sdk send onAccountChange | connect\r\n      // sdk to dapp send event\r\n      // CONNECT and ACCOUNT_CHANGE return account as AccountAddress\r\n      case EndLessSDKEvent.CONNECT:\r\n      case EndLessSDKEvent.ACCOUNT_CHANGE: {\r\n        const accountInfo: AccountInfo = {\r\n          ...msg.data.data,\r\n        };\r\n        if (msg?.data?.data?.account) {\r\n          EndlessJsSdk.setAccountAddress(AccountAddress.fromBs58String(msg.data.data.account));\r\n        } else {\r\n          EndlessJsSdk.setAccountAddress(null);\r\n        }\r\n        this.emit(eventType, accountInfo);\r\n        break;\r\n      }\r\n\r\n      case EndLessSDKEvent.DISCONNECT: {\r\n        EndlessJsSdk.setAccountAddress(null);\r\n        this.emit(eventType, msg.data.data);\r\n        break;\r\n      }\r\n\r\n      default:\r\n        this.emit(eventType as EndLessSDKEventType, msg.data.data);\r\n        break;\r\n    }\r\n  };\r\n\r\n  readonly addListener = <K extends EndLessSDKEventType>(\r\n    methodName: K,\r\n    callback: (payload: EndLessSDKEventPayload<K>) => void\r\n  ) => {\r\n    if (!this.listeners[methodName]) {\r\n      this.listeners[methodName] = [];\r\n    }\r\n    this.listeners[methodName].push(callback);\r\n  };\r\n\r\n  readonly removeListener = <K extends EndLessSDKEventType>(\r\n    methodName: K,\r\n    callback?: (payload: EndLessSDKEventPayload<K>) => void\r\n  ) => {\r\n    if (callback) {\r\n      const index = this.listeners[methodName]?.indexOf(callback) ?? -1;\r\n      if (index > -1) {\r\n        this.listeners?.[methodName]?.splice(index, 1);\r\n      }\r\n    } else {\r\n      this.listeners[methodName] = [];\r\n    }\r\n  };\r\n\r\n  readonly emit = <K extends EndLessSDKEventType>(methodName: K, payload: EndLessSDKEventPayload<K>) => {\r\n    this.listeners?.[methodName]?.forEach((d) => d(payload));\r\n  };\r\n\r\n  readonly sendMessage = (data: IMessageData, callback?: (data: any) => void) => {\r\n    if (this.modal) {\r\n      const iframe: HTMLIFrameElement = document.getElementById(IframeID) as HTMLIFrameElement;\r\n      if (iframe) {\r\n        this.uuids.push(data.uuid);\r\n\r\n        if (callback) {\r\n          this.callbacks[data.uuid + data.methodName] = callback;\r\n        }\r\n\r\n        iframe?.contentWindow?.postMessage(\r\n          {\r\n            ...data,\r\n            target: PostMessage.ENDLESS_WALLET_TARGET,\r\n          },\r\n          iframe.src\r\n        );\r\n      }\r\n    }\r\n  };\r\n}\r\n\r\nexport const ENDLESS_MESSAGE_TARGET = PostMessage.ENDLESS_MESSAGE_TARGET;\r\nexport const ENDLESS_WALLET_TARGET = PostMessage.ENDLESS_WALLET_TARGET;\r\n","import type { IModalConfig } from './types';\r\nimport { IFRAMEURL } from '../../constants';\r\nimport { PostMessage } from '../../message';\r\nimport { ColorMode } from 'src/types';\r\n\r\nconst CONTAINER_ID = 'endless_dapp_modal_container';\r\nconst CONTAINER_CLASS_DARK = 'endless_dapp_modal_container_dark';\r\nexport const ENDLESS_MODEL_POSITION_LEFT = 'endless_dapp_modal_position_left';\r\nexport const ENDLESS_MODEL_POSITION_TOP = 'endless_dapp_modal_position_top';\r\nexport const IframeID = `${CONTAINER_ID}_iframe`;\r\nexport const LoadingID = `${CONTAINER_ID}_loading`;\r\nexport const ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY = 'endless-wallet-web3-sdk-enableThemeToggle';\r\nexport const ENDLESS_WALLET_COLOR_MODE_KEY = 'endless-wallet-web3-sdk-color-mode';\r\nconst lightTitleBgSvg =\r\n  'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYwIiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMzYwIDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTM5OV82OTgpIj4KPHJlY3Qgd2lkdGg9IjM2MCIgaGVpZ2h0PSI0OCIgZmlsbD0id2hpdGUiLz4KPGcgb3BhY2l0eT0iMC4yIiBmaWx0ZXI9InVybCgjZmlsdGVyMF9mXzEzOTlfNjk4KSI+CjxlbGxpcHNlIGN4PSItOCIgY3k9IjMyIiByeD0iMTEwIiByeT0iNTEuNSIgZmlsbD0iIzg0NzNGRiIvPgo8L2c+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZl8xMzk5XzY5OCIgeD0iLTI2OCIgeT0iLTE2OS41IiB3aWR0aD0iNTIwIiBoZWlnaHQ9IjQwMyIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI3NSIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEzOTlfNjk4Ii8+CjwvZmlsdGVyPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzOTlfNjk4Ij4KPHJlY3Qgd2lkdGg9IjM2MCIgaGVpZ2h0PSI0OCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K';\r\nconst darkTitleBgSvg =\r\n  'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYwIiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMzYwIDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNDI1Nl8zMTc2KSI+CjxyZWN0IHdpZHRoPSIzNjAiIGhlaWdodD0iNDgiIGZpbGw9IiMwNTA2MDciLz4KPGcgb3BhY2l0eT0iMC4zIiBmaWx0ZXI9InVybCgjZmlsdGVyMF9mXzQyNTZfMzE3NikiPgo8ZWxsaXBzZSBjeD0iLTgiIGN5PSIxMDIiIHJ4PSIxMTAiIHJ5PSI1MS41IiBmaWxsPSIjODQ3M0ZGIi8+CjwvZz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9mXzQyNTZfMzE3NiIgeD0iLTI2OCIgeT0iLTk5LjUiIHdpZHRoPSI1MjAiIGhlaWdodD0iNDAzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249Ijc1IiByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfNDI1Nl8zMTc2Ii8+CjwvZmlsdGVyPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzQyNTZfMzE3NiI+CjxyZWN0IHdpZHRoPSIzNjAiIGhlaWdodD0iNDgiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==';\r\nfunction generateThresholdArray(count: number = 100) {\r\n  const result = [];\r\n  for (let i = 0; i <= count; i++) {\r\n    result.push(parseFloat((i / count).toFixed(2)));\r\n  }\r\n  return result;\r\n}\r\nexport class Modal {\r\n  private static _instance: Modal;\r\n  modalConfig: IModalConfig = { url: IFRAMEURL, colorMode: undefined };\r\n  private isContainerDefault: boolean = false;\r\n  private isLoadingDefault: boolean = false;\r\n  readyState: boolean = false;\r\n  private offsetX: number = 0;\r\n  private offsetY: number = 0;\r\n  private containerObserver: IntersectionObserver | undefined = undefined;\r\n  private containerWrap: HTMLElement = document.getElementById(CONTAINER_ID)!;\r\n\r\n  constructor(modalConfig: IModalConfig) {\r\n    if (Modal._instance) return Modal._instance;\r\n\r\n    this.modalConfig = modalConfig;\r\n    const containerEle = this.getContainer(modalConfig['endless']);\r\n    this.createDefaultCSS();\r\n    this.createHTML(containerEle);\r\n    this.containerWrap = document.getElementById(CONTAINER_ID)!;\r\n    this.containerWrap && this.initializeObserver();\r\n\r\n    Modal._instance = this;\r\n  }\r\n\r\n  private getModelPositonStorage(key: string) {\r\n    return localStorage.getItem(key);\r\n  }\r\n\r\n  private setModelPositonStorage(key: string, val: number) {\r\n    localStorage.setItem(key, val.toString());\r\n  }\r\n\r\n  private initializeObserver() {\r\n    this.containerObserver = new IntersectionObserver(this.handleIntersect, {\r\n      threshold: generateThresholdArray(),\r\n    });\r\n    this.containerObserver.observe(this.containerWrap);\r\n  }\r\n\r\n  private handleIntersect = (entries: IntersectionObserverEntry[]) => {\r\n    entries.forEach((entry) => {\r\n      if (entry.target instanceof HTMLElement) {\r\n        this.adjustPosition(entry);\r\n      }\r\n    });\r\n  };\r\n\r\n  private adjustPosition(entry: IntersectionObserverEntry) {\r\n    const { top, left, bottom, right, height, width } = entry.boundingClientRect;\r\n    const { width: viewWidth, height: viewHeight } = entry.rootBounds!;\r\n    if (left >= 0 && right > viewWidth) {\r\n      const leftVal = viewWidth - width;\r\n      this.containerWrap.style.left = leftVal + 'px';\r\n      this.setModelPositonStorage(ENDLESS_MODEL_POSITION_LEFT, leftVal);\r\n    }\r\n    if (top >= 0 && bottom > viewHeight) {\r\n      const topVal = viewHeight - height;\r\n      this.containerWrap.style.top = topVal + 'px';\r\n      this.setModelPositonStorage(ENDLESS_MODEL_POSITION_TOP, topVal);\r\n    }\r\n  }\r\n\r\n  private checkPosition() {\r\n    if (!this.isElementInViewport(this.containerWrap)) {\r\n      const topVal = 20;\r\n      this.containerWrap.style.top = topVal + 'px';\r\n      this.setModelPositonStorage(ENDLESS_MODEL_POSITION_TOP, topVal);\r\n      const leftVal = window.innerWidth - this.containerWrap.offsetWidth - 20;\r\n      this.containerWrap.style.left = leftVal + 'px';\r\n      this.setModelPositonStorage(ENDLESS_MODEL_POSITION_LEFT, leftVal);\r\n    }\r\n  }\r\n\r\n  stopAllObservations() {\r\n    this.containerObserver?.disconnect();\r\n  }\r\n\r\n  private isElementInViewport(element: HTMLElement) {\r\n    const rect = element.getBoundingClientRect();\r\n    return rect.top >= 0 && rect.left >= 0 && rect.bottom <= window.innerHeight && rect.right <= window.innerWidth;\r\n  }\r\n\r\n  getContainer(modalConfig: Partial<IModalConfig['endless']>) {\r\n    if (modalConfig?.container) {\r\n      const containerEle = document.querySelector(modalConfig.container);\r\n      if (containerEle) {\r\n        containerEle.className = modalConfig.className || '';\r\n        containerEle.setAttribute('style', modalConfig.style || '');\r\n        return containerEle;\r\n      }\r\n    }\r\n    const body = document.body;\r\n    const containerEle = document.createElement('div');\r\n    containerEle.id = CONTAINER_ID;\r\n    containerEle.className = `${CONTAINER_ID}_hide ${\r\n      this.modalConfig.colorMode === 'dark' ? CONTAINER_CLASS_DARK : ''\r\n    }`;\r\n\r\n    const titleBoxEle = document.createElement('div');\r\n    titleBoxEle.className = `${CONTAINER_ID}_modal_title_box`;\r\n    titleBoxEle.draggable = true;\r\n    titleBoxEle.addEventListener('drag', this.dragHandler);\r\n    titleBoxEle.addEventListener('dragstart', this.dragstartHandler);\r\n    titleBoxEle.addEventListener('dragover', (event) => {\r\n      event.preventDefault();\r\n      if (event.dataTransfer) {\r\n        event.dataTransfer.dropEffect = 'move';\r\n      }\r\n    });\r\n\r\n    const titleEle = document.createElement('div');\r\n    titleEle.innerHTML = `<svg width=\"135\" height=\"16\" viewBox=\"0 0 135 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path d=\"M60.9969 14.4405C60.258 14.4405 59.5467 14.3412 58.863 14.1426C58.2848 13.9619 57.8084 13.751 57.4339 13.5099C57.3299 13.443 57.2969 13.3086 57.3501 13.197L57.9235 11.9951C57.9914 11.8529 58.1698 11.8047 58.306 11.884C58.6468 12.0824 59.0365 12.2513 59.475 12.3906C60.0264 12.5658 60.5778 12.6534 61.1292 12.6534C61.7798 12.6534 62.2485 12.56 62.5352 12.3731C62.833 12.1862 62.9819 11.9351 62.9819 11.6197C62.9819 11.3628 62.8826 11.1701 62.6841 11.0416C62.4856 10.9014 62.2265 10.7963 61.9067 10.7262C61.5868 10.6561 61.2284 10.5919 60.8314 10.5335C60.4455 10.4751 60.054 10.3992 59.657 10.3057C59.271 10.2006 58.9181 10.0546 58.5983 9.86771C58.2785 9.66915 58.0193 9.40635 57.8208 9.07931C57.6223 8.75226 57.5231 8.3201 57.5231 7.78281C57.5231 7.18712 57.683 6.6732 58.0028 6.24103C58.3226 5.79719 58.7692 5.45846 59.3427 5.22486C59.9272 4.97957 60.6164 4.85693 61.4104 4.85693C62.0059 4.85693 62.6069 4.92701 63.2134 5.06718C63.7251 5.18541 64.1622 5.34519 64.5247 5.54654C64.6379 5.60938 64.677 5.75027 64.6213 5.8671L64.0505 7.06374C63.9837 7.20365 63.8097 7.25267 63.6741 7.17744C63.3366 6.99012 62.9956 6.85902 62.651 6.78416C62.232 6.67904 61.8129 6.62647 61.3939 6.62647C60.7653 6.62647 60.2966 6.72576 59.9878 6.92432C59.6901 7.12288 59.5412 7.374 59.5412 7.67769C59.5412 7.95801 59.6404 8.16825 59.8389 8.30842C60.0374 8.44858 60.2966 8.55954 60.6164 8.6413C60.9362 8.72306 61.2891 8.79314 61.6751 8.85154C62.0721 8.89826 62.4636 8.97418 62.8495 9.07931C63.2355 9.18443 63.5884 9.33043 63.9082 9.51731C64.239 9.69251 64.5037 9.94363 64.7022 10.2707C64.9007 10.5977 65 11.024 65 11.5497C65 12.1337 64.8345 12.6417 64.5037 13.0739C64.1839 13.5061 63.7262 13.8448 63.1307 14.0901C62.5352 14.3237 61.8239 14.4405 60.9969 14.4405Z\" fill=\"currentColor\"/>\r\n<path d=\"M52.3001 14.4405C51.5612 14.4405 50.8499 14.3412 50.1662 14.1426C49.588 13.9619 49.1116 13.751 48.7371 13.5099C48.6331 13.443 48.6001 13.3086 48.6534 13.197L49.2267 11.9951C49.2946 11.8529 49.473 11.8047 49.6092 11.884C49.95 12.0824 50.3397 12.2513 50.7782 12.3906C51.3296 12.5658 51.881 12.6534 52.4324 12.6534C53.0831 12.6534 53.5517 12.56 53.8385 12.3731C54.1362 12.1862 54.2851 11.9351 54.2851 11.6197C54.2851 11.3628 54.1858 11.1701 53.9873 11.0416C53.7888 10.9014 53.5297 10.7963 53.2099 10.7262C52.8901 10.6561 52.5317 10.5919 52.1347 10.5335C51.7487 10.4751 51.3572 10.3992 50.9602 10.3057C50.5742 10.2006 50.2213 10.0546 49.9015 9.86771C49.5817 9.66915 49.3226 9.40635 49.1241 9.07931C48.9256 8.75226 48.8263 8.3201 48.8263 7.78281C48.8263 7.18712 48.9862 6.6732 49.306 6.24103C49.6258 5.79719 50.0725 5.45846 50.6459 5.22486C51.2304 4.97957 51.9196 4.85693 52.7136 4.85693C53.3091 4.85693 53.9101 4.92701 54.5167 5.06718C55.0283 5.18541 55.4654 5.34519 55.8279 5.54654C55.9411 5.60938 55.9803 5.75027 55.9245 5.8671L55.3537 7.06374C55.2869 7.20365 55.1129 7.25267 54.9774 7.17744C54.6399 6.99012 54.2988 6.85902 53.9543 6.78416C53.5352 6.67904 53.1161 6.62647 52.6971 6.62647C52.0685 6.62647 51.5998 6.72576 51.291 6.92432C50.9933 7.12288 50.8444 7.374 50.8444 7.67769C50.8444 7.95801 50.9437 8.16825 51.1422 8.30842C51.3407 8.44858 51.5998 8.55954 51.9196 8.6413C52.2394 8.72306 52.5923 8.79314 52.9783 8.85154C53.3753 8.89826 53.7668 8.97418 54.1528 9.07931C54.5387 9.18443 54.8916 9.33043 55.2114 9.51731C55.5423 9.69251 55.8069 9.94363 56.0054 10.2707C56.2039 10.5977 56.3032 11.024 56.3032 11.5497C56.3032 12.1337 56.1378 12.6417 55.8069 13.0739C55.4871 13.5061 55.0295 13.8448 54.434 14.0901C53.8385 14.3237 53.1272 14.4405 52.3001 14.4405Z\" fill=\"currentColor\"/>\r\n<path d=\"M43.2477 14.4405C42.2663 14.4405 41.4061 14.2361 40.6672 13.8273C39.9394 13.4068 39.3715 12.8345 38.9634 12.1103C38.5664 11.3861 38.3679 10.5627 38.3679 9.63995C38.3679 8.70554 38.5609 7.88209 38.9469 7.1696C39.3439 6.44543 39.8842 5.87895 40.568 5.47014C41.2627 5.06134 42.0512 4.85693 42.9334 4.85693C43.7936 4.85693 44.56 5.0555 45.2327 5.45262C45.9054 5.84975 46.4348 6.41039 46.8207 7.13456C47.2067 7.85873 47.3997 8.71138 47.3997 9.69251C47.3997 9.78595 47.3942 9.89108 47.3832 10.0079C47.3832 10.0422 47.3827 10.076 47.3817 10.1093C47.378 10.2411 47.2665 10.3408 47.1346 10.3408H40.2632C40.1209 10.3408 40.0055 10.2254 40.0055 10.0831V9.1442C40.0055 9.00192 40.1209 8.88658 40.2632 8.88658H45.6372C45.809 8.88658 45.8687 9.11483 45.719 9.199C45.6064 9.26227 45.4665 9.17904 45.4585 9.05013C45.4326 8.63177 45.3297 8.25605 45.15 7.92297C44.9295 7.51417 44.6262 7.19296 44.2402 6.95936C43.8653 6.72576 43.4297 6.60896 42.9334 6.60896C42.4262 6.60896 41.9795 6.72576 41.5936 6.95936C41.2186 7.19296 40.9209 7.52001 40.7003 7.94049C40.4908 8.3493 40.386 8.83402 40.386 9.39467V9.74507C40.386 10.3057 40.5073 10.8021 40.7499 11.2343C40.9925 11.6665 41.3344 11.9993 41.7755 12.2329C42.2166 12.4665 42.7239 12.5833 43.2974 12.5833C43.7936 12.5833 44.2402 12.5016 44.6372 12.3381C44.9469 12.2105 45.2297 12.0261 45.4857 11.7849C45.6012 11.676 45.7873 11.6785 45.8881 11.8011L46.6709 12.7539C46.7485 12.8484 46.7497 12.9851 46.6678 13.0759C46.2942 13.4899 45.8379 13.8163 45.2989 14.055C44.7034 14.312 44.0197 14.4405 43.2477 14.4405Z\" fill=\"currentColor\"/>\r\n<path d=\"M34.4625 14.4027C34.2974 14.4513 34.1321 14.3276 34.1321 14.1556V2.46835C34.1321 2.36159 34.1979 2.26589 34.2976 2.22774L35.8501 1.63378C36.0188 1.56925 36.1998 1.69379 36.1998 1.87439V13.6985C36.1998 13.8127 36.1245 13.9133 36.0149 13.9456L34.4625 14.4027Z\" fill=\"currentColor\"/>\r\n<path d=\"M26.3293 14.4404C25.4802 14.4404 24.7137 14.2418 24.03 13.8447C23.3573 13.4359 22.828 12.8752 22.442 12.1628C22.056 11.4503 21.863 10.6093 21.863 9.63984C21.863 8.67039 22.056 7.82942 22.442 7.11693C22.828 6.40444 23.3573 5.84964 24.03 5.45251C24.7137 5.05539 25.4802 4.85682 26.3293 4.85682C27.0682 4.85682 27.7298 5.03203 28.3143 5.38243C28.8988 5.72115 29.362 6.24092 29.7038 6.94173C30.0457 7.64254 30.2166 8.54191 30.2166 9.63984C30.2166 10.7261 30.0512 11.6255 29.7204 12.338C29.3895 13.0388 28.9319 13.5644 28.3474 13.9148C27.7629 14.2652 27.0902 14.4404 26.3293 14.4404ZM26.5774 12.5657C27.0737 12.5657 27.5148 12.4489 27.9008 12.2153C28.2978 11.9817 28.6121 11.643 28.8437 11.1991C29.0863 10.7553 29.2076 10.2355 29.2076 9.63984C29.2076 9.03248 29.0863 8.51271 28.8437 8.08054C28.6121 7.6367 28.2978 7.29797 27.9008 7.06437C27.5148 6.83077 27.0737 6.71397 26.5774 6.71397C26.0812 6.71397 25.6346 6.83077 25.2376 7.06437C24.8516 7.29797 24.5373 7.6367 24.2947 8.08054C24.0631 8.51271 23.9473 9.03248 23.9473 9.63984C23.9473 10.2355 24.0631 10.7553 24.2947 11.1991C24.5373 11.643 24.8516 11.9817 25.2376 12.2153C25.6346 12.4489 26.0812 12.5657 26.5774 12.5657ZM29.5909 14.3968C29.4252 14.448 29.2572 14.3241 29.2572 14.1507V12.1102L29.3399 9.62232L29.1745 7.13445V2.41088C29.1745 2.30186 29.2431 2.20465 29.3458 2.16814L30.8818 1.62223C31.0495 1.56262 31.2257 1.68698 31.2257 1.86497V13.7012C31.2257 13.8141 31.1521 13.9139 31.0442 13.9473L29.5909 14.3968Z\" fill=\"currentColor\"/>\r\n<path d=\"M16.0787 4.85693C16.7845 4.85693 17.413 5.00294 17.9644 5.29494C18.5269 5.58694 18.968 6.03663 19.2878 6.64399C19.6076 7.23968 19.7675 8.01057 19.7675 8.95666V14.0602C19.7675 14.2025 19.6521 14.3178 19.5099 14.3178H17.9574C17.8151 14.3178 17.6998 14.2025 17.6998 14.0602V9.23699C17.6998 8.4077 17.5123 7.78865 17.1373 7.37984C16.7734 6.97104 16.2606 6.76664 15.599 6.76664C15.1137 6.76664 14.6837 6.87176 14.3087 7.082C13.9338 7.29224 13.6415 7.60761 13.432 8.02809C13.2335 8.4369 13.1342 8.95666 13.1342 9.58739V14.0602C13.1342 14.2025 13.0189 14.3178 12.8766 14.3178H11.3241C11.1819 14.3178 11.0665 14.2025 11.0665 14.0602V5.92725C11.0665 5.82206 11.1305 5.72744 11.2281 5.68822L12.6813 5.10419C12.8506 5.03616 13.035 5.16079 13.035 5.34323V6.71909C13.035 6.89639 12.7932 6.94836 12.7203 6.78671C12.6997 6.74083 12.7009 6.68788 12.7251 6.64373C13.0321 6.08241 13.4663 5.65033 14.0275 5.3475C14.623 5.02046 15.3067 4.85693 16.0787 4.85693Z\" fill=\"currentColor\"/>\r\n<path d=\"M1.98501 7.40922C1.98501 7.26694 2.10035 7.15161 2.24263 7.15161H7.48392C7.6262 7.15161 7.74154 7.26694 7.74154 7.40922V8.76865C7.74154 8.91093 7.6262 9.02627 7.48392 9.02627H2.24262C2.10035 9.02627 1.98501 8.91093 1.98501 8.76865V7.40922ZM2.15043 12.1501C2.15043 12.2923 2.26576 12.4077 2.40804 12.4077H8.4268C8.56907 12.4077 8.68441 12.523 8.68441 12.6653V14.0598C8.68441 14.202 8.56908 14.3174 8.4268 14.3174H0.257616C0.115338 14.3174 0 14.202 0 14.0598V2.31084C0 2.16856 0.115339 2.05322 0.257616 2.05322H8.19521C8.33749 2.05322 8.45283 2.16856 8.45283 2.31084V3.70531C8.45283 3.84759 8.33749 3.96293 8.19521 3.96293H2.40804C2.26577 3.96293 2.15043 4.07826 2.15043 4.22054V12.1501Z\" fill=\"currentColor\"/>\r\n<rect x=\"73\" y=\"6\" width=\"4\" height=\"4\" fill=\"currentColor\"/>\r\n<path d=\"M88.552 14L85.184 2.48H87.208L89.504 10.8L91.792 2.496L93.816 2.48L96.112 10.8L98.4 2.48H100.424L97.064 14H95.16L92.8 5.808L90.456 14H88.552ZM103.427 14.24C102.803 14.24 102.275 14.1227 101.843 13.888C101.411 13.648 101.083 13.3307 100.859 12.936C100.64 12.5413 100.531 12.1067 100.531 11.632C100.531 11.216 100.6 10.8427 100.739 10.512C100.877 10.176 101.091 9.888 101.379 9.648C101.667 9.40267 102.04 9.20267 102.499 9.048C102.845 8.936 103.251 8.83467 103.715 8.744C104.184 8.65333 104.691 8.57067 105.235 8.496C105.784 8.416 106.357 8.33067 106.955 8.24L106.267 8.632C106.272 8.03467 106.139 7.59467 105.867 7.312C105.595 7.02933 105.136 6.888 104.491 6.888C104.101 6.888 103.725 6.97867 103.363 7.16C103 7.34133 102.747 7.65333 102.603 8.096L100.843 7.544C101.056 6.81333 101.461 6.22667 102.059 5.784C102.661 5.34133 103.472 5.12 104.491 5.12C105.259 5.12 105.933 5.24533 106.515 5.496C107.101 5.74667 107.536 6.15733 107.819 6.728C107.973 7.032 108.067 7.344 108.099 7.664C108.131 7.97867 108.147 8.32267 108.147 8.696V14H106.459V12.128L106.739 12.432C106.349 13.056 105.893 13.5147 105.371 13.808C104.853 14.096 104.205 14.24 103.427 14.24ZM103.811 12.704C104.248 12.704 104.621 12.6267 104.931 12.472C105.24 12.3173 105.485 12.128 105.667 11.904C105.853 11.68 105.979 11.4693 106.043 11.272C106.144 11.0267 106.2 10.7467 106.211 10.432C106.227 10.112 106.235 9.85333 106.235 9.656L106.827 9.832C106.245 9.92267 105.747 10.0027 105.331 10.072C104.915 10.1413 104.557 10.208 104.259 10.272C103.96 10.3307 103.696 10.3973 103.467 10.472C103.243 10.552 103.053 10.6453 102.899 10.752C102.744 10.8587 102.624 10.9813 102.539 11.12C102.459 11.2587 102.419 11.4213 102.419 11.608C102.419 11.8213 102.472 12.0107 102.579 12.176C102.685 12.336 102.84 12.464 103.043 12.56C103.251 12.656 103.507 12.704 103.811 12.704ZM110.389 14V2.24H112.317V14H110.389ZM114.874 14V2.24H116.802V14H114.874ZM123.126 14.24C122.251 14.24 121.483 14.0507 120.822 13.672C120.161 13.2933 119.643 12.768 119.27 12.096C118.902 11.424 118.718 10.6507 118.718 9.776C118.718 8.832 118.899 8.01333 119.262 7.32C119.625 6.62133 120.129 6.08 120.774 5.696C121.419 5.312 122.166 5.12 123.014 5.12C123.91 5.12 124.67 5.33067 125.294 5.752C125.923 6.168 126.39 6.75733 126.694 7.52C126.998 8.28267 127.113 9.18133 127.038 10.216H125.126V9.512C125.121 8.57333 124.955 7.888 124.63 7.456C124.305 7.024 123.793 6.808 123.094 6.808C122.305 6.808 121.718 7.05333 121.334 7.544C120.95 8.02933 120.758 8.74133 120.758 9.68C120.758 10.5547 120.95 11.232 121.334 11.712C121.718 12.192 122.278 12.432 123.014 12.432C123.489 12.432 123.897 12.328 124.238 12.12C124.585 11.9067 124.851 11.6 125.038 11.2L126.942 11.776C126.611 12.5547 126.099 13.16 125.406 13.592C124.718 14.024 123.958 14.24 123.126 14.24ZM120.15 10.216V8.76H126.094V10.216H120.15ZM133.887 14C133.316 14.1067 132.756 14.152 132.207 14.136C131.663 14.1253 131.175 14.0267 130.743 13.84C130.311 13.648 129.983 13.3467 129.759 12.936C129.562 12.5627 129.458 12.1813 129.447 11.792C129.436 11.4027 129.431 10.9627 129.431 10.472V2.96H131.351V10.36C131.351 10.7067 131.354 11.0107 131.359 11.272C131.37 11.5333 131.426 11.7467 131.527 11.912C131.719 12.232 132.026 12.4107 132.447 12.448C132.868 12.4853 133.348 12.464 133.887 12.384V14ZM127.863 6.872V5.36H133.887V6.872H127.863Z\" fill=\"currentColor\"/>\r\n</svg>`;\r\n\r\n    const closeEle = document.createElement('div');\r\n    closeEle.className = `${CONTAINER_ID}_close_btn`;\r\n    closeEle.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n  <path d=\"M13.2 2.7998L7.99996 7.99981M7.99996 7.99981L2.79996 13.1998M7.99996 7.99981L13.2 13.1998M7.99996 7.99981L2.79996 2.7998\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"/>\r\n</svg>`;\r\n    closeEle.addEventListener('click', () => {\r\n      this.closeModal();\r\n    });\r\n\r\n    titleBoxEle.appendChild(titleEle);\r\n    titleBoxEle.appendChild(closeEle);\r\n    containerEle.appendChild(titleBoxEle);\r\n\r\n    // const iframeBoxEle = document.createElement('div');\r\n    // iframeBoxEle.className = `${CONTAINER_ID}_modal_iframe_box`;\r\n\r\n    const iframeBodyEle = document.createElement('div');\r\n    iframeBodyEle.className = `${CONTAINER_ID}_modal_iframe_body`;\r\n    // iframeBodyEle.appendChild(iframeBoxEle);\r\n    containerEle.appendChild(iframeBodyEle);\r\n\r\n    body.appendChild(containerEle);\r\n    this.isContainerDefault = true;\r\n    // return iframeBoxEle;\r\n    return iframeBodyEle;\r\n  }\r\n\r\n  private dragstartHandler = (e: MouseEvent) => {\r\n    const { offsetX, offsetY } = e;\r\n    this.offsetX = offsetX;\r\n    this.offsetY = offsetY;\r\n  };\r\n\r\n  private dragHandler = (e: MouseEvent) => {\r\n    const dom = document.getElementById(CONTAINER_ID);\r\n\r\n    if (dom && e.clientX && e.clientY) {\r\n      const _w = window.innerWidth - dom.offsetWidth;\r\n      const _h = window.innerHeight - dom.offsetHeight;\r\n      let left = e.clientX - this.offsetX;\r\n      let top = e.clientY - this.offsetY;\r\n      left = Math.min(Math.max(left, 0), _w);\r\n      top = Math.min(Math.max(top, 0), _h);\r\n      dom.style.left = `${left}px`;\r\n      dom.style.top = `${top}px`;\r\n      this.setModelPositonStorage(ENDLESS_MODEL_POSITION_TOP, top);\r\n      this.setModelPositonStorage(ENDLESS_MODEL_POSITION_LEFT, left);\r\n    }\r\n  };\r\n\r\n  private createDefaultCSS = () => {\r\n    const head = document.getElementsByTagName('head')[0];\r\n    const css = document.createElement('style');\r\n    css.className = 'endless_dapp_css';\r\n    let left =\r\n      this.getModelPositonStorage(ENDLESS_MODEL_POSITION_LEFT) ??\r\n      window.innerWidth - (this.modalConfig.windowWidth ?? 360) - 20;\r\n    let top = this.getModelPositonStorage(ENDLESS_MODEL_POSITION_TOP) ?? 20;\r\n    css.innerHTML = `\r\n      #${CONTAINER_ID} {\r\n        position: fixed;\r\n        left: ${left}px;\r\n        top: ${top}px;\r\n\t\t\t\tmin-width: 320px;\r\n        width: ${this.modalConfig.windowWidth}px;\r\n        height: 100%;\r\n        max-height: 660px;\r\n\t\t\t\tdisplay: flex;\r\n        flex-direction: column;\r\n        overflow: hidden;\r\n\t\t\t\tbox-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.07);\r\n\t\t\t\tborder: 1px solid #E5E5E5;\r\n        cursor: move;\r\n        pointer-events: auto;\r\n        z-index: 9999 !important;\r\n      }\r\n      #${CONTAINER_ID}.${CONTAINER_ID}_hide {\r\n        display: none;\r\n      }\r\n      .${CONTAINER_ID}_modal_title_box{\r\n        height: 40px;\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        padding: 0 16px;\r\n\t\t\t\tborder-bottom: 1px solid #F3F3F3;\r\n\t\t\t\tbackground-image: url('${lightTitleBgSvg}');\r\n\t\t\t\tbackground-repeat: no-repeat;\r\n\t\t\t\tbackground-size: 100%;\r\n\t\t\t\tcolor: #000;\r\n\t\t\t}\r\n      .${CONTAINER_ID}_modal_title_box .${CONTAINER_ID}_close_btn {\r\n        cursor: pointer;\r\n        font-size: 20px;\r\n\t\t\t\tcolor: #000;\r\n      }\r\n      .${CONTAINER_ID}_modal_iframe_body {\r\n\t\t\t\tflex: 1;\r\n        height: calc(100% - 40px);\r\n        overflow-y: auto;\r\n      }\r\n\t\t\t.${CONTAINER_ID}_modal_iframe_body::-webkit-scrollbar {\r\n\t\t\t\tdisplay: none;\r\n      }\r\n      .${CONTAINER_ID}_modal_iframe_box{\r\n        height: 100%;\r\n      }\r\n      #${CONTAINER_ID} > #${IframeID} {\r\n          width: 100%;\r\n          height: 100%;\r\n          background-color: #fff;\r\n      }\r\n      #${CONTAINER_ID}_close {\r\n        position: absolute;\r\n        right: 0;\r\n        top: 0;\r\n        transform: translate(50%, -50%);\r\n        width: 40px;\r\n      }\r\n      #${LoadingID} {\r\n        position: fixed;\r\n        left: 50%;\r\n        top: 50%;\r\n        transform: translate(-50%, -50%);\r\n      }\r\n      @media (max-width: 640px) {\r\n        #${CONTAINER_ID} {\r\n          width: 100%;\r\n          height: 95%;\r\n          max-height: 100%;\r\n          left: 0 !important;\r\n\t\t\t\t\ttop: auto !important;\r\n          bottom: 0 !important;\r\n          transform: translate(0);\r\n          border-radius: 10px 10px 0 0;\r\n        }\r\n      }\r\n\t\t\t#${CONTAINER_ID}.${CONTAINER_CLASS_DARK}{\r\n\t\t\t\tborder-color: #343536;\r\n\t\t\t}\r\n\t\t\t#${CONTAINER_ID}.${CONTAINER_CLASS_DARK} .${CONTAINER_ID}_modal_title_box{\r\n\t\t\t\tborder-bottom: 1px solid transparent;\r\n\t\t\t\tbackground-image: url('${darkTitleBgSvg}');\r\n\t\t\t\tcolor: #fff;\r\n\t\t\t}\r\n\t\t\t#${CONTAINER_ID}.${CONTAINER_CLASS_DARK} .${CONTAINER_ID}_modal_title_box .${CONTAINER_ID}_close_btn {\r\n\t\t\t\tcolor: #fff;\r\n\t\t\t}\r\n    `;\r\n    head.appendChild(css);\r\n  };\r\n\r\n  private createHTML = (container: Element) => {\r\n    const htmlStr = `\r\n            <iframe id=\"${IframeID}\" style=\"width:100%;height:100%;\" allow-top-navigation=\"true\"\r\n            allow=\"publickey-credentials-create *;publickey-credentials-get *\"\r\n            src=\"${this.modalConfig.url}?time=${new Date().getTime()}\"\r\n            frameborder=\"0\"></iframe>\r\n        `;\r\n\r\n    container.innerHTML = htmlStr;\r\n  };\r\n\r\n  loaded = () => {\r\n    this.readyState = true;\r\n    if (this.isLoadingDefault) {\r\n      const body = document.body;\r\n      const loadingNode = document.getElementById(LoadingID);\r\n      body.removeChild(loadingNode!);\r\n    }\r\n    this.modalConfig?.loading?.finished && this.modalConfig?.loading?.finished();\r\n  };\r\n\r\n  private getLoadingContainer = (loadingConf: Partial<IModalConfig['loading']>) => {\r\n    const loadingStr = loadingConf?.element || `<div>loading...</div>`;\r\n    if (loadingConf?.container) {\r\n      const loadingEle = document.querySelector(loadingConf.container);\r\n      if (loadingEle) {\r\n        loadingEle.className = loadingConf.className || '';\r\n        loadingEle.setAttribute('style', loadingConf.style || '');\r\n        if (typeof loadingStr === 'string') {\r\n          loadingEle.innerHTML = loadingStr;\r\n        } else {\r\n          loadingEle.appendChild(loadingConf.element as Element);\r\n        }\r\n        return loadingEle;\r\n      }\r\n    }\r\n    const loadingEle = document.createElement('div');\r\n\r\n    loadingEle.innerHTML = `<div>loading...</div>`;\r\n    loadingEle.id = LoadingID;\r\n    const body = document.body;\r\n    body.appendChild(loadingEle);\r\n    this.isLoadingDefault = true;\r\n    return loadingEle;\r\n  };\r\n\r\n  waitReady = async () => {\r\n    return new Promise((resolve) => {\r\n      const checkReadyState = () => {\r\n        if (this.readyState) {\r\n          return resolve(true);\r\n        } else {\r\n          window.setTimeout(async () => {\r\n            checkReadyState();\r\n          }, 300);\r\n        }\r\n      };\r\n      checkReadyState();\r\n    });\r\n  };\r\n\r\n  readonly closeModal = (callback?: () => void) => {\r\n    if (this.isContainerDefault) {\r\n      const modal = document.getElementById(CONTAINER_ID)!;\r\n      modal.classList.add(`${CONTAINER_ID}_hide`);\r\n    }\r\n    // clear all postMessage promise\r\n    Object.values(PostMessage.promiseMap).forEach(\r\n      (promise: { resolve?: (value: any) => void; reject: (value: any) => void }) => {\r\n        promise.reject('close');\r\n      }\r\n    );\r\n    PostMessage.promiseMap = {};\r\n    typeof this.modalConfig?.endless?.close === 'function' && this.modalConfig?.endless?.close();\r\n    typeof callback === 'function' && callback();\r\n  };\r\n\r\n  readonly setWalletContainerColorMode = async ({ colorMode }: { colorMode: ColorMode }) => {\r\n    const modal = document.getElementById(CONTAINER_ID)!;\r\n    switch (colorMode) {\r\n      case 'light':\r\n        modal.classList.remove(`${CONTAINER_CLASS_DARK}`);\r\n        break;\r\n      case 'dark':\r\n        modal.classList.add(`${CONTAINER_CLASS_DARK}`);\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  };\r\n\r\n  readonly openModal = async (callback?: () => void) => {\r\n    if (this.isContainerDefault) {\r\n      await this.waitReady();\r\n      const modal = document.getElementById(CONTAINER_ID)!;\r\n      modal.classList.remove(`${CONTAINER_ID}_hide`);\r\n      this.checkPosition();\r\n    }\r\n    typeof this.modalConfig?.endless?.open === 'function' && this.modalConfig?.endless?.open();\r\n    typeof callback === 'function' && callback();\r\n  };\r\n}\r\n","import { ENDLESS_WALLET_COLOR_MODE_KEY, ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY, Modal } from './ui/modal';\r\nimport { PostMessage } from './message';\r\nimport type { IRequestData } from './message/types';\r\nimport type { EndLessSDKEventType, EndLessSDKEventPayload } from './message/types';\r\nimport { EndLessSDKEvent } from './message/types';\r\nimport { IFRAMEURL } from './constants';\r\nimport {\r\n  EndlessWalletOptions,\r\n  UserResponse,\r\n  AccountInfo,\r\n  UserResponseStatus,\r\n  EndlessSignMessageInput,\r\n  EndlessSignMessageOutput,\r\n  EndlessSignAndSubmitTransactionInput,\r\n  EndlessSendTransactionType,\r\n  EndlessWalletTransactionType,\r\n  UserRejection,\r\n  NetworkInfo,\r\n  ColorMode,\r\n} from './types';\r\n\r\nimport {\r\n  Network,\r\n  AccountAddress,\r\n  Endless,\r\n  EndlessConfig,\r\n  AnyRawTransaction,\r\n  NetworkToChainId,\r\n  NetworkToNetworkName,\r\n  NetworkToNodeAPI,\r\n} from '@endlesslab/endless-ts-sdk';\r\nimport { getNetworkInfo } from './utils';\r\nexport interface Metadata {\r\n  title: string;\r\n  url: string;\r\n  origin: string;\r\n  icon: string;\r\n  gameId: string;\r\n  userId: string;\r\n  walletAddress: string;\r\n}\r\nexport { ENDLESS_WALLET_COLOR_MODE_KEY, ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY } from './ui/modal';\r\nexport { ENDLESS_MESSAGE_TARGET, ENDLESS_WALLET_TARGET } from './message';\r\nexport { EndLessSDKEvent } from './message/types';\r\nexport {\r\n  EndlessWalletOptions,\r\n  UserResponseStatus,\r\n  EndlessSendTransactionType,\r\n  EndlessWalletTransactionType,\r\n} from './types';\r\nexport type { UserResponse, AccountInfo, EndlessSignAndSubmitTransactionInput } from './types';\r\nexport enum MethodName {\r\n  INIT = 'init',\r\n  SET_COLOR_MODE = 'setColorMode',\r\n  CONNECT = 'connect',\r\n  CREATE_WALLET = 'createWallet',\r\n  GETACCOUNT = 'getAccount',\r\n  DISCONNECT = 'disconnect',\r\n  NETWORK_CHANGE = 'switchNetwork',\r\n  SIGN_MESSAGE = 'signMessage',\r\n  SEND_TRANSACTION = 'sendTransaction',\r\n  SIGN_AND_SUBMIT_TRANSACTION = 'signAndSubmitTransaction',\r\n  SIGN_TRANSACTION = 'signTransaction',\r\n  ACCOUNT_CHANGE = 'accountChange',\r\n  OPEN = 'open',\r\n  CLOSE = 'close',\r\n}\r\nconst rejectedCloseData: UserRejection = { status: UserResponseStatus.REJECTED, message: 'Wallet closed' };\r\nexport class EndlessJsSdk {\r\n  static readonly version: string = '1.0.11';\r\n  private static _instance: EndlessJsSdk;\r\n  private message: PostMessage | null = null;\r\n  private _metadata: Metadata = {} as Metadata;\r\n  private _initData: EndlessWalletOptions = {} as EndlessWalletOptions;\r\n  private _walletAddress: string = IFRAMEURL;\r\n  private _endless: Endless | null = null;\r\n  private _endlessConfig: EndlessConfig | null = null;\r\n  accountAddress: AccountAddress | null = null;\r\n\r\n  static getIninData = () => {\r\n    if (EndlessJsSdk._instance) {\r\n      return EndlessJsSdk._instance._initData;\r\n    } else {\r\n      return {};\r\n    }\r\n  };\r\n  static getAccountAddress = () => {\r\n    if (EndlessJsSdk._instance) {\r\n      return EndlessJsSdk._instance.accountAddress;\r\n    } else {\r\n      return null;\r\n    }\r\n  };\r\n  static setAccountAddress = (accountAddress: AccountAddress | null) => {\r\n    if (EndlessJsSdk._instance) {\r\n      EndlessJsSdk._instance.accountAddress = accountAddress;\r\n    }\r\n  };\r\n\r\n  constructor(initData: EndlessWalletOptions) {\r\n    if (EndlessJsSdk._instance) return EndlessJsSdk._instance;\r\n\r\n    this._initData.colorMode = localStorage.getItem(ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY) ? (localStorage.getItem(ENDLESS_WALLET_COLOR_MODE_KEY) as ColorMode) : initData.colorMode || (localStorage.getItem(ENDLESS_WALLET_COLOR_MODE_KEY) as ColorMode);\r\n    this._initData.windowWidth = (initData.windowWidth || 360) <= 360 ? 360 : initData.windowWidth;\r\n\r\n    if (initData.walletUrl) {\r\n      this._walletAddress = initData.walletUrl;\r\n    }\r\n\r\n    const modal = new Modal({\r\n      colorMode: this._initData.colorMode,\r\n      url: this._walletAddress,\r\n      windowWidth: this._initData.windowWidth,\r\n      endless: {\r\n        close: () => {\r\n          // send to wallet to close\r\n          this.message?.sendMessage({\r\n            uuid: new Date().getTime().toString(),\r\n            methodName: MethodName.CLOSE,\r\n            metadata: this._metadata,\r\n            data: {},\r\n          });\r\n          // send to dapp to close\r\n          this.message?.emit(EndLessSDKEvent.CLOSE, undefined);\r\n        },\r\n      },\r\n    });\r\n    this.message = new PostMessage(modal);\r\n    this.initWalletEvent();\r\n    this.getMetadata();\r\n\r\n    this.initConfig(initData);\r\n\r\n    this.initWallet();\r\n    EndlessJsSdk._instance = this;\r\n  }\r\n\r\n  private initConfig(initData: EndlessWalletOptions) {\r\n    if (initData.network === Network.CUSTOM) {\r\n      if (!initData.fullnode || !initData.indexer) {\r\n        throw new Error('Custom network must provide fullnode and indexer');\r\n      }\r\n      this._initData.fullnode = initData.fullnode;\r\n      this._initData.indexer = initData.indexer;\r\n      this._initData.prover = initData.prover;\r\n      this._initData.network = initData.network;\r\n\r\n      this._endlessConfig = new EndlessConfig({\r\n        network: initData.network,\r\n        indexer: initData.indexer,\r\n        fullnode: initData.fullnode,\r\n        prover: initData.prover,\r\n      });\r\n    } else {\r\n      this._initData.network = initData.network;\r\n      this._endlessConfig = new EndlessConfig({\r\n        network: initData.network,\r\n      });\r\n    }\r\n\r\n    this._endless = new Endless(this._endlessConfig);\r\n  }\r\n\r\n  private initWallet() {\r\n    this.message?.modal?.waitReady().then(() => {\r\n      this.message?.sendMessage({\r\n        uuid: new Date().getTime().toString(),\r\n        methodName: MethodName.INIT,\r\n        metadata: this._metadata,\r\n        data: this._initData,\r\n      });\r\n    });\r\n  }\r\n\r\n  private initWalletEvent() {\r\n    this.on(EndLessSDKEvent.NETWORK_CHANGE, (payload) => {\r\n      this.initConfig({\r\n        network: payload.name,\r\n      });\r\n    });\r\n  }\r\n\r\n  changeNetwork(initData: EndlessWalletOptions) {\r\n    this.message?.modal?.waitReady().then(() => {\r\n      this.message?.sendMessage({\r\n        uuid: new Date().getTime().toString(),\r\n        methodName: MethodName.NETWORK_CHANGE,\r\n        metadata: this._metadata,\r\n        data: {\r\n          ...this._initData,\r\n          ...initData,\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n  getNetwork = (): Promise<UserResponse<NetworkInfo>> => {\r\n    return new Promise((resolve) => {\r\n      if (!this._endlessConfig?.network) {\r\n        resolve({ status: UserResponseStatus.REJECTED, message: 'Network not set' });\r\n        return;\r\n      }\r\n      resolve({\r\n        status: UserResponseStatus.APPROVED,\r\n        args: getNetworkInfo(this._endlessConfig!.network),\r\n      });\r\n    });\r\n  };\r\n\r\n  private getMetadata() {\r\n    const iconLink = document.querySelector('link[rel=\"icon\"]') || document.querySelector('link[rel=\"shortcut icon\"]');\r\n    let iconUrl = iconLink?.getAttribute('href') || '';\r\n    if (iconUrl && !iconUrl.startsWith('http')) {\r\n      iconUrl = new URL(iconUrl, window.location.origin).href;\r\n    }\r\n\r\n    this._metadata.title = window.document.title;\r\n    this._metadata.url = window.location.href;\r\n    this._metadata.origin = window.location.origin;\r\n    this._metadata.icon = iconUrl;\r\n  }\r\n\r\n  open = (callback?: () => void) => {\r\n    this.message?.modal?.waitReady().then(() => {\r\n      this.message?.sendMessage({\r\n        uuid: new Date().getTime().toString(),\r\n        methodName: MethodName.OPEN,\r\n        metadata: this._metadata,\r\n        data: {},\r\n      });\r\n      this.message?.modal?.openModal(() => {\r\n        this.message?.emit(EndLessSDKEvent.OPEN, undefined);\r\n        callback && callback();\r\n      });\r\n    });\r\n  };\r\n\r\n  close = (callback?: () => void) => {\r\n    this.message?.modal?.waitReady().then(() => {\r\n      this.message?.sendMessage({\r\n        uuid: new Date().getTime().toString(),\r\n        methodName: MethodName.CLOSE,\r\n        metadata: this._metadata,\r\n        data: {},\r\n      });\r\n      this.message?.modal?.closeModal(() => {\r\n        callback && callback();\r\n      });\r\n    });\r\n  };\r\n\r\n  request = (data: IRequestData, callback?: (data: unknown) => void) => {\r\n    if (this.message?.modal) {\r\n      this.message?.sendMessage(\r\n        {\r\n          uuid: new Date().getTime().toString(),\r\n          methodName: data.method,\r\n          metadata: this._metadata,\r\n          data: data.data,\r\n        },\r\n        callback\r\n      );\r\n      this.message?.modal?.openModal();\r\n    }\r\n  };\r\n\r\n  getAccount = (): Promise<UserResponse<AccountInfo>> => {\r\n    return new Promise((resolve) => {\r\n      this.message?.modal?.waitReady().then(() => {\r\n        this.message?.sendMessage(\r\n          {\r\n            uuid: new Date().getTime().toString(),\r\n            methodName: MethodName.GETACCOUNT,\r\n            metadata: this._metadata,\r\n            data: {},\r\n          },\r\n          (data) => {\r\n            if (data.account) {\r\n              this.accountAddress = AccountAddress.fromBs58String(data.account);\r\n              const res: UserResponse<AccountInfo> = {\r\n                status: UserResponseStatus.APPROVED,\r\n                args: { ...data },\r\n              };\r\n              resolve(res);\r\n            } else {\r\n              const res: UserResponse<AccountInfo> = {\r\n                status: UserResponseStatus.REJECTED,\r\n                message: data?.message || 'Wallet is not connected',\r\n              };\r\n              resolve(res);\r\n            }\r\n          }\r\n        );\r\n      });\r\n    });\r\n  };\r\n\r\n  connect = (callback?: (data: AccountInfo) => void): Promise<UserResponse<AccountInfo>> => {\r\n    return new Promise((resolve) => {\r\n      this.message?.modal?.waitReady().then(() => {\r\n        PostMessage.promiseMap[MethodName.CONNECT] = {\r\n          reject: () => {\r\n            resolve(rejectedCloseData);\r\n          },\r\n        };\r\n        this.message?.sendMessage(\r\n          {\r\n            uuid: new Date().getTime().toString(),\r\n            methodName: MethodName.CONNECT,\r\n            metadata: this._metadata,\r\n            data: {},\r\n          },\r\n          (data) => {\r\n            delete PostMessage.promiseMap[MethodName.CONNECT];\r\n            if (data.account) {\r\n              this.accountAddress = AccountAddress.fromBs58String(data.account);\r\n              const res: UserResponse<AccountInfo> = {\r\n                status: UserResponseStatus.APPROVED,\r\n                args: { ...data },\r\n              };\r\n              resolve(res);\r\n            } else {\r\n              const res: UserResponse<AccountInfo> = { status: UserResponseStatus.REJECTED, message: data?.message };\r\n              resolve(res);\r\n            }\r\n            if (callback) callback({ ...data });\r\n          }\r\n        );\r\n      });\r\n    });\r\n  };\r\n\r\n  disconnect = (callback?: (data: unknown) => void): Promise<void> => {\r\n    return new Promise((resolve, reject) => {\r\n      if (this.message?.modal?.readyState) {\r\n        this.message.sendMessage(\r\n          {\r\n            uuid: new Date().getTime().toString(),\r\n            methodName: MethodName.DISCONNECT,\r\n            metadata: this._metadata,\r\n            data: {},\r\n          },\r\n          (data: unknown) => {\r\n            delete PostMessage.promiseMap[MethodName.DISCONNECT];\r\n            this.accountAddress = null;\r\n            if (callback) callback(data);\r\n            resolve();\r\n          }\r\n        );\r\n      } else {\r\n        reject('Wallet is not ready');\r\n      }\r\n    });\r\n  };\r\n\r\n  createWallet = (callback?: (data: unknown) => void) => {\r\n    if (this.message?.modal) {\r\n      this.message.sendMessage(\r\n        {\r\n          uuid: new Date().getTime().toString(),\r\n          methodName: MethodName.CREATE_WALLET,\r\n          metadata: this._metadata,\r\n          data: {},\r\n        },\r\n        (data: unknown) => {\r\n          if (callback) callback(data);\r\n        }\r\n      );\r\n    }\r\n  };\r\n\r\n  setWalletColorMode = (data: { colorMode: ColorMode }): void => {\r\n    if (localStorage.getItem(ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY) !== null) return;\r\n    if (!['dark', 'light'].includes(data.colorMode)) {\r\n      throw new Error(\"Invalid color mode\");\r\n    }\r\n    this.message?.modal?.waitReady().then(() => {\r\n      this.message?.modal?.setWalletContainerColorMode({ colorMode: data.colorMode });\r\n      this.message?.sendMessage({\r\n        uuid: new Date().getTime().toString(),\r\n        methodName: MethodName.SET_COLOR_MODE,\r\n        metadata: this._metadata,\r\n        data: data,\r\n      });\r\n      localStorage.setItem(ENDLESS_WALLET_COLOR_MODE_KEY, data.colorMode);\r\n    });\r\n  };\r\n\r\n  signMessage = (\r\n    data: EndlessSignMessageInput,\r\n    callback?: (data: unknown) => void\r\n  ): Promise<UserResponse<EndlessSignMessageOutput>> => {\r\n    return new Promise((resolve) => {\r\n      this.message?.modal?.waitReady().then(() => {\r\n        PostMessage.promiseMap[MethodName.SIGN_MESSAGE] = {\r\n          resolve,\r\n          reject: () => {\r\n            resolve(rejectedCloseData);\r\n          },\r\n        };\r\n        this.message?.sendMessage(\r\n          {\r\n            uuid: new Date().getTime().toString(),\r\n            methodName: MethodName.SIGN_MESSAGE,\r\n            metadata: this._metadata,\r\n            data: data,\r\n          },\r\n          (res) => {\r\n            delete PostMessage.promiseMap[MethodName.SIGN_MESSAGE];\r\n            if (res.status === 'success') {\r\n              const result: UserResponse<EndlessSignMessageOutput> = {\r\n                status: UserResponseStatus.APPROVED,\r\n                args: res,\r\n              };\r\n              resolve(result);\r\n            } else {\r\n              const result: UserRejection = { status: UserResponseStatus.REJECTED, message: res?.message };\r\n              resolve(result);\r\n            }\r\n            if (callback) callback(res);\r\n          }\r\n        );\r\n      });\r\n    });\r\n  };\r\n\r\n  on = <K extends EndLessSDKEventType>(methodName: K, callback: (payload: EndLessSDKEventPayload<K>) => void) => {\r\n    if (this.message?.addListener) {\r\n      this.message?.addListener(methodName, callback);\r\n    }\r\n  };\r\n  off = <K extends EndLessSDKEventType>(methodName: K, callback?: (payload: EndLessSDKEventPayload<K>) => void) => {\r\n    if (this.message?.removeListener) {\r\n      this.message?.removeListener(methodName, callback);\r\n    }\r\n  };\r\n\r\n  signAndSubmitTransaction = (data: EndlessSignAndSubmitTransactionInput): Promise<UserResponse<{ hash: string }>> => {\r\n    return new Promise(async (resolve) => {\r\n      PostMessage.promiseMap[MethodName.SIGN_AND_SUBMIT_TRANSACTION] = {\r\n        resolve,\r\n        reject: () => {\r\n          resolve(rejectedCloseData);\r\n        },\r\n      };\r\n      if (!this.accountAddress) {\r\n        const res = await this.getAccount();\r\n        if (res.status === UserResponseStatus.APPROVED) {\r\n          this.accountAddress = AccountAddress.fromBs58String(res.args.account);\r\n        } else {\r\n          delete PostMessage.promiseMap[MethodName.SIGN_AND_SUBMIT_TRANSACTION];\r\n          const result: UserRejection = { status: UserResponseStatus.REJECTED, message: 'Wallet not linked' };\r\n          resolve(result);\r\n          return;\r\n        }\r\n      }\r\n\r\n      if (!this.accountAddress || !this._endless) {\r\n        delete PostMessage.promiseMap[MethodName.SIGN_AND_SUBMIT_TRANSACTION];\r\n        const result: UserRejection = { status: UserResponseStatus.REJECTED, message: 'Wallet not linked' };\r\n        resolve(result);\r\n        return;\r\n      }\r\n      const transaction = await this._endless.transaction.build.simple({\r\n        sender: this.accountAddress,\r\n        data: data.payload,\r\n        options: data.options\r\n      });\r\n\r\n      const transactionData = {\r\n        options: data.options || {},\r\n        type: EndlessSendTransactionType.SIGN_AND_SUBMIT,\r\n        serializedTransaction: transaction.bcsToHex().toString(),\r\n      };\r\n\r\n      if (this.message?.modal?.readyState) {\r\n        this.message.sendMessage(\r\n          {\r\n            uuid: new Date().getTime().toString(),\r\n            methodName: MethodName.SIGN_AND_SUBMIT_TRANSACTION,\r\n            metadata: this._metadata,\r\n            data: transactionData,\r\n          },\r\n          (res) => {\r\n            delete PostMessage.promiseMap[MethodName.SIGN_AND_SUBMIT_TRANSACTION];\r\n            if (res.status === 'success') {\r\n              const result: UserResponse<{ hash: string }> = {\r\n                status: UserResponseStatus.APPROVED,\r\n                args: {\r\n                  hash: res.hash,\r\n                },\r\n              };\r\n              resolve(result);\r\n            } else {\r\n              const result: UserRejection = { status: UserResponseStatus.REJECTED, message: res?.message };\r\n              resolve(result);\r\n            }\r\n          }\r\n        );\r\n      }\r\n    });\r\n  };\r\n\r\n  signTransaction = (\r\n    transactionHex: string,\r\n    transactionType: EndlessWalletTransactionType\r\n  ): Promise<UserResponse<{ data: string }>> => {\r\n    return new Promise(async (resolve) => {\r\n      PostMessage.promiseMap[MethodName.SIGN_TRANSACTION] = {\r\n        resolve,\r\n        reject: () => {\r\n          resolve(rejectedCloseData);\r\n        },\r\n      };\r\n      if (!this.accountAddress) {\r\n        const res = await this.getAccount();\r\n        if (res.status === UserResponseStatus.APPROVED) {\r\n          this.accountAddress = AccountAddress.fromBs58String(res.args.account);\r\n        } else {\r\n          delete PostMessage.promiseMap[MethodName.SIGN_TRANSACTION];\r\n          const result: UserRejection = { status: UserResponseStatus.REJECTED, message: 'Wallet not linked' };\r\n          resolve(result);\r\n          return;\r\n        }\r\n      }\r\n\r\n      if (!this.accountAddress || !this._endless) {\r\n        delete PostMessage.promiseMap[MethodName.SIGN_TRANSACTION];\r\n        const result: UserRejection = { status: UserResponseStatus.REJECTED, message: 'Wallet not linked' };\r\n        resolve(result);\r\n        return;\r\n      }\r\n\r\n      const transactionData = {\r\n        type: EndlessSendTransactionType.SIGNATURE_ONLY,\r\n        serializedTransaction: transactionHex,\r\n        transactionType,\r\n      };\r\n\r\n      if (this.message?.modal?.readyState) {\r\n        this.message.sendMessage(\r\n          {\r\n            uuid: new Date().getTime().toString(),\r\n            methodName: MethodName.SIGN_TRANSACTION,\r\n            metadata: this._metadata,\r\n            data: transactionData,\r\n          },\r\n          (res) => {\r\n            delete PostMessage.promiseMap[MethodName.SIGN_TRANSACTION];\r\n            if (res.status === 'success') {\r\n              const result = {\r\n                status: UserResponseStatus.APPROVED,\r\n                args: res,\r\n              };\r\n              resolve(result);\r\n            } else {\r\n              const result: UserRejection = { status: UserResponseStatus.REJECTED, message: res?.message };\r\n              resolve(result);\r\n            }\r\n          }\r\n        );\r\n      }\r\n    });\r\n  };\r\n\r\n  onAccountChange = (callback: (data: AccountInfo) => void) => {\r\n    this.on(EndLessSDKEvent.ACCOUNT_CHANGE, callback);\r\n  };\r\n\r\n  onNetworkChange = (callback: (data: NetworkInfo) => void) => {\r\n    this.on(EndLessSDKEvent.NETWORK_CHANGE, callback);\r\n  };\r\n}\r\n"],"mappings":"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","names":["AccountAddress","CONTAINER_ID","CONTAINER_CLASS_DARK","ENDLESS_MODEL_POSITION_LEFT","ENDLESS_MODEL_POSITION_TOP","IframeID","LoadingID","ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY","ENDLESS_WALLET_COLOR_MODE_KEY","lightTitleBgSvg","darkTitleBgSvg","generateThresholdArray","count","result","i","_Modal","modalConfig","__publicField","IFRAMEURL","entries","entry","offsetX","offsetY","dom","_w","_h","left","top","head","css","container","htmlStr","body","loadingNode","loadingConf","loadingStr","loadingEle","resolve","checkReadyState","callback","PostMessage","promise","colorMode","modal","containerEle","key","val","bottom","right","height","width","viewWidth","viewHeight","leftVal","topVal","element","rect","titleBoxEle","event","titleEle","closeEle","iframeBodyEle","Modal","Network","AccountAddress","Endless","EndlessConfig","MethodName","rejectedCloseData","_EndlessJsSdk","initData","__publicField","IFRAMEURL","resolve","getNetworkInfo","callback","data","AccountAddress","res","PostMessage","reject","ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY","ENDLESS_WALLET_COLOR_MODE_KEY","result","methodName","transaction","transactionData","transactionHex","transactionType","modal","Modal","Network","EndlessConfig","Endless","payload","iconUrl","accountAddress","EndlessJsSdk","_PostMessage","modal","__publicField","msg","eventType","ENDLESS_WALLET_WEB3_SDK_ENABLETHEME_TOGGLE_KEY","ENDLESS_WALLET_COLOR_MODE_KEY","network","getNetworkInfo","accountInfo","EndlessJsSdk","AccountAddress","methodName","callback","index","payload","d","data","iframe","IframeID","PostMessage","ENDLESS_MESSAGE_TARGET","ENDLESS_WALLET_TARGET"]}