{"version":3,"sources":["../../src/message/types.ts","../../src/types.ts","../../src/utils/index.ts","../../src/message/index.ts","../../src/index.ts"],"sourcesContent":["import { MethodName } from '../index';\r\nimport type { AccountInfo, NetworkInfo, IInitData } from '../types';\r\nexport interface IMetaData {\r\n  gameId: string;\r\n  userId: string;\r\n  walletAddress: string;\r\n}\r\n\r\nexport interface IMessageData {\r\n  uuid: string,\r\n  methodName: string,\r\n  from?: string | null,\r\n  metadata: IMetaData,\r\n  initData?: IInitData,\r\n  data: any\r\n}\r\n\r\nexport interface IResponseMessageData {\r\n  uuid: string,\r\n  status: string,\r\n  data: any,\r\n  methodName: string,\r\n  errMsg?: string\r\n}\r\n\r\nexport interface IRequestData {\r\n  method: MethodName | string,\r\n  data?: unknown,\r\n  initData?: IInitData,\r\n}\r\n\r\nexport enum EndLessSDKEvent {\r\n\tCONNECT = 'connect',\r\n\tGETACCOUNT = 'getAccount',\r\n\tDISCONNECT = 'disconnect',\r\n\tACCOUNT_CHANGE = 'accountChange',\r\n\tNETWORK_CHANGE ='networkChange',\r\n};\r\nexport type EndLessSDKEventType = (typeof EndLessSDKEvent)[keyof typeof EndLessSDKEvent];\r\nexport interface EndLessSDKEventsMap {\r\n\t[EndLessSDKEvent.CONNECT]: AccountInfo;\r\n\t[EndLessSDKEvent.DISCONNECT]: void;\r\n\t[EndLessSDKEvent.ACCOUNT_CHANGE]: AccountInfo;\r\n\t[EndLessSDKEvent.GETACCOUNT]: AccountInfo[];\r\n\t[EndLessSDKEvent.GETACCOUNT]: AccountInfo[];\r\n\t[EndLessSDKEvent.NETWORK_CHANGE]: NetworkInfo;\r\n}\r\nexport type EndLessSDKEventPayload<T extends EndLessSDKEventType> = T extends keyof EndLessSDKEventsMap ? EndLessSDKEventsMap[T] : undefined;\r\n\r\nexport type EndLessSDKEventListenersType = {\r\n\t[K in EndLessSDKEventType]?: Array<(payload: EndLessSDKEventPayload<K>) => void>;\r\n};\r\n","export enum Network {\r\n  MAINNET = \"mainnet\",\r\n  TESTNET = \"testnet\",\r\n\tETH = 'eth',\r\n\tBSC = 'bsc',\r\n}\r\nexport type IInitData = {\r\n\tcolorMode?: 'light' | 'dark';\r\n\tnetwork: Network | string;\r\n\tfullnode?: string;\r\n\tindexer?: string;\r\n\twalletUrl?: string;\r\n\tprover?: string;\r\n\tcallbackWalletName?: string;\r\n\tminiprogram?: Boolean;\r\n\twindowWidth?: number;\r\n};\r\n\r\nexport type ChainData = {\r\n\ttargetNet: 'endless' | 'eds' | 'eth' | 'bsc'\r\n}\r\n\r\nexport enum UserResponseStatus {\r\n\tAPPROVED = 'Approved',\r\n\tREJECTED = 'Rejected'\r\n}\r\n\r\nexport interface UserApproval<TResponseArgs> {\r\n\tstatus: UserResponseStatus.APPROVED;\r\n\targs: TResponseArgs;\r\n}\r\n\r\nexport interface UserRejection {\r\n\tstatus: UserResponseStatus.REJECTED;\r\n\tmessage?: string;\r\n}\r\n\r\nexport type UserResponse<TResponseArgs> = UserApproval<TResponseArgs> | UserRejection;\r\n\r\nexport interface AccountInfo {\r\n\taccount: string;\r\n\taddress: string;\r\n\tauthKey: string;\r\n\tansName?: string;\r\n}\r\n\r\nexport interface NetworkInfo {\r\n\tname: Network | string;\r\n\tchainId: number;\r\n\turl?: string;\r\n}\r\n\r\nexport type EndlessSignMessageInput = {\r\n\taddress?: boolean;\r\n\tapplication?: boolean;\r\n\tchainId?: boolean;\r\n\tmessage: string;\r\n\tnonce: string;\r\n};\r\n\r\nexport type EndlessSignMessageOutput = {\r\n\taddress?: string;\r\n\tapplication?: string;\r\n\tchainId?: number;\r\n\tfullMessage: string;\r\n\tpublicKey: string;\r\n\tmessage: string;\r\n\tnonce: string;\r\n\tprefix: 'Endless::Message';\r\n\tsignature: string;\r\n};\r\n\r\nexport type AnyNumber = number | bigint;\r\nexport type InputGenerateTransactionOptions = {\r\n\t\tmaxGasAmount?: number;\r\n\t\tgasUnitPrice?: number;\r\n\t\texpireTimestamp?: number;\r\n\t\taccountSequenceNumber?: AnyNumber;\r\n};\r\ntype MoveStructId = `${string}::${string}::${string}`;\r\ntype MoveFunctionId = MoveStructId;\r\ntype InputEntryFunctionData = {\r\n\t\tfunction: MoveFunctionId;\r\n\t\ttypeArguments?: Array<string>;\r\n\t\tfunctionArguments: Array<string>;\r\n\t\tabi?: any;\r\n\t\tpaymentChecksum?: string;\r\n};\r\n\r\nexport interface EndlessSignAndSubmitTransactionInput {\r\n\tpayload: InputEntryFunctionData; // the transaction payload\r\n\toptions?: InputGenerateTransactionOptions;\r\n}\r\n/* export interface EndlessSignAndSubmitTransactionInputMiniprogram {\r\n\tgasUnitPrice?: number; // defaults to estimated gas unit price\r\n\tmaxGasAmount?: number; // defaults to estimated max gas amount\r\n\tpayload: InputEntryFunctionData; // the transaction payload\r\n\toptions?: InputGenerateTransactionOptions;\r\n} */\r\n\r\nexport enum EndlessSendTransactionType {\r\n\tSIGNATURE_ONLY = 'signatureOnly',\r\n\tSIGN_AND_SUBMIT = 'signAndSubmit'\r\n}\r\n\r\nexport enum EndlessWalletTransactionType {\r\n\tSIMPLE = 'simple',\r\n\tMULTI_AGENT = 'multiAgent'\r\n}\r\ndeclare global {\r\n\tinterface Window {\r\n\t\twebkit: any\r\n\t\tWeixinJSBridge: {\r\n\t\t\tinvoke(api: string, data: any, callback: (res: any) => void): void;\r\n\t\t\ton(api: string, callback: (res: any) => void): void;\r\n\t\t},\r\n\t\tendlessWallet?: {\r\n\t\t\tsendResponse: (response: any) => void;\r\n\t\t},\r\n\t\t_endlessWallet?: {\r\n\t\t\tsendMessage: (data: any) => void;\r\n\t\t}\r\n\t}\r\n}\r\n","import { Network, NetworkInfo } from '../types'\r\n\r\nexport const NetworkToChainId: Record<string, number> = {\r\n  mainnet: 220,\r\n  testnet: 221,\r\n  local: 223,\r\n  devnet: 11\r\n};\r\nexport const NetworkToNetworkName: Record<string, Network> = {\r\n  mainnet: Network.MAINNET,\r\n  testnet: Network.TESTNET\r\n};\r\n\r\nexport const NetworkToNodeAPI: Record<string, string> = {\r\n  mainnet: \"https://rpc.endless.link/v1\",\r\n  testnet: \"https://rpc-test.endless.link/v1\",\r\n  devnet: \"https://rpc-testnet.endless.link/v1\",\r\n  local: \"http://127.0.0.1:8080/v1\",\r\n};\r\n\r\nexport const getNetworkInfo = (network: string): NetworkInfo => {\r\n  return {\r\n    name: NetworkToNetworkName[network] ?? network,\r\n    chainId: NetworkToChainId[network],\r\n    url: NetworkToNodeAPI[network],\r\n  }\r\n}\r\n\r\nexport const isLuffa = () => {\r\n  return window && window?._endlessWallet !== undefined || window?.webkit?.messageHandlers?._endlessWallet !== undefined || false;\r\n}\r\n\r\n\r\nexport const isLuffaMiniProgramWebview = () => {\r\n  const userAgent = window && window?.navigator?.userAgent || '';\r\n  return userAgent.includes('miniProgram');\r\n}\r\n\r\n\r\nexport const isLuffaMiniProgram = () => {\r\n  return Boolean(typeof wx !== 'undefined' && wx?.getWindowInfo);\r\n}\r\n\r\nexport const networkMap: Partial<Record<Network | string, string>> = {\r\n  [Network.MAINNET]: 'endless',\r\n  [Network.TESTNET]: 'eds',\r\n  endless: Network.MAINNET,\r\n  eds: Network.TESTNET\r\n}\r\n","import { AccountInfo, EndlessLuffaSdk, MethodName } from '../index';\r\nimport type { IMessageData, EndLessSDKEventListenersType, EndLessSDKEventPayload, EndLessSDKEventType } from './types';\r\nimport { EndLessSDKEvent, IResponseMessageData } from './types';\r\nimport { getNetworkInfo, isLuffaMiniProgramWebview, isLuffaMiniProgram, isLuffa, networkMap } from '../utils';\r\n\r\nexport class PostMessage {\r\n  private static _instance: PostMessage;\r\n  callbacks: {\r\n    [key: string]: (data: unknown) => void;\r\n  } = {};\r\n  private listeners: EndLessSDKEventListenersType = {};\r\n\r\n  constructor() {\r\n    if (PostMessage._instance) return PostMessage._instance;\r\n    PostMessage._instance = this;\r\n//    /// #if BUILD_PLATFORM !== 'MINIPROGRAM'\r\n//    if (isLuffa()) {\r\n//      window.endlessWallet = {\r\n//        sendResponse: this.sendResponse.bind(this),\r\n//      };\r\n//    }\r\n//    /// #endif\r\n  }\r\n  // wallet emit sdk\r\n  // SDK processing method itself\r\n  private readonly receive = (msg: { data: IResponseMessageData }) => {\r\n    const eventType = msg.data.methodName as EndLessSDKEventType | MethodName;\r\n    // sdk callbacks\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    // Some events are being monitored by dapp and require running a monitoring callback\r\n    switch (eventType) {\r\n      case MethodName.NETWORK_CHANGE: {\r\n        const network = networkMap[msg.data?.data?.network] ?? msg.data?.data?.network;\r\n        this.emit(EndLessSDKEvent.NETWORK_CHANGE, { name: network, chainId: msg.data?.data?.blockChainId });\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          EndlessLuffaSdk.setAccountAddress(msg.data.data.account);\r\n        } else {\r\n          EndlessLuffaSdk.setAccountAddress(null);\r\n        }\r\n        this.emit(eventType, accountInfo);\r\n        break;\r\n      }\r\n\r\n      case EndLessSDKEvent.DISCONNECT: {\r\n        EndlessLuffaSdk.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\r\n    try {\r\n      // web and WebView\r\n\r\n//      /// #if BUILD_PLATFORM !== 'MINIPROGRAM'\r\n//      if (isLuffa()) {\r\n//        this.sendLuffaMessage(data, callback);\r\n//        return;\r\n//      } else {\r\n//        this.sendMiniProgramMessage(data, callback);\r\n//      }\r\n//      /// #endif\r\n\r\n//      /// #if BUILD_PLATFORM === 'MINIPROGRAM'\r\n      this.sendMiniProgramMessage(data, callback);\r\n//      /// #endif\r\n    } catch (error) {\r\n      callback && callback({\r\n        error\r\n      });\r\n      console.error('sendMessage error: ', error);\r\n    }\r\n  };\r\n\r\n  private sendLuffaMessage(data: IMessageData, callback?: (data: any) => void) {\r\n    const initData =  data?.initData || EndlessLuffaSdk.getIninData();\r\n    data.initData = {\r\n      ...(initData || {}),\r\n      network: networkMap[initData.network] ?? initData.network\r\n    },\r\n    data.from = EndlessLuffaSdk.getAccountAddress();\r\n    if (callback) {\r\n      this.callbacks[data.uuid + data.methodName] = callback;\r\n    }\r\n    console.log('luffa-endless-sdk sendLuffaMessage data: ', data);\r\n    if (window?._endlessWallet) {\r\n      window._endlessWallet?.sendMessage(JSON.stringify(data));\r\n    } else if (window?.webkit && window?.webkit?.messageHandlers?._endlessWallet) {\r\n      window.webkit.messageHandlers._endlessWallet?.postMessage(data);\r\n    }\r\n  }\r\n\r\n  private sendResponse(response: string) {\r\n    const responseData = JSON.parse(response);\r\n    console.log('luffa-endless-sdk responseData: ', responseData);\r\n    this.receive({\r\n      data: responseData,\r\n    });\r\n  }\r\n\r\n  private sendMiniProgramMessage(data: IMessageData, callback?: (data: any) => void) {\r\n    let funName = 'invokeNativePlugin';\r\n    const accountAddress = EndlessLuffaSdk.getAccountAddress();\r\n    const initData =  data?.initData || EndlessLuffaSdk.getIninData();\r\n    let api_name = 'luffaWebRequest';\r\n    let params = {\r\n      api_name,\r\n      data: {\r\n        func: data.methodName,\r\n        chainType: 'endless',\r\n        ...data,\r\n        initData: {\r\n          ...initData,\r\n          network: networkMap[initData.network] ?? initData.network\r\n        },\r\n        from: accountAddress,\r\n      },\r\n    };\r\n    let callbackSuccessFun = (res: any) => {\r\n      callback &&\r\n        callback({\r\n          status: 'success',\r\n          ...(res.data || {}),\r\n        });\r\n    };\r\n    let callbackErrorFun = (res: any) => {\r\n      callback &&\r\n        callback({\r\n          status: 'error',\r\n          ...(res.data || {}),\r\n        });\r\n    };\r\n    switch (data.methodName) {\r\n      case MethodName.CONNECT:\r\n      case MethodName.GETACCOUNT:\r\n        callbackSuccessFun = (res) => {\r\n          EndlessLuffaSdk.setAccountAddress(res.data.account);\r\n          callback &&\r\n            callback({\r\n              account: res?.data?.address || '',\r\n              ...(res.data || {}),\r\n            });\r\n        };\r\n        callbackErrorFun = () => {\r\n          callback &&\r\n            callback({\r\n              account: '',\r\n            });\r\n        };\r\n        break;\r\n      case MethodName.SIGN_MESSAGE:\r\n      case MethodName.SIGN_BUILD_TRANSACTION:\r\n      case MethodName.SIGN_AND_SUBMIT_TRANSACTION:\r\n      case MethodName.PACKAGETRANSACTIONV2:\r\n        callbackSuccessFun = (res: any) => {\r\n          callback &&\r\n            callback({\r\n              status: 'success',\r\n              ...(res.data || {}),\r\n            });\r\n        };\r\n        callbackErrorFun = (res: any) => {\r\n          callback &&\r\n            callback({\r\n              status: 'error',\r\n              ...(res.data || {}),\r\n            });\r\n        };\r\n        break;\r\n\r\n      default:\r\n        break;\r\n    }\r\n    console.log('funName: ', funName);\r\n    console.log('params: ', params);\r\n\r\n//    /// #if BUILD_PLATFORM !== 'MINIPROGRAM'\r\n//    if (isLuffaMiniProgramWebview()) {\r\n//      window.WeixinJSBridge?.invoke(funName, params, (res) => {\r\n//        console.log(`luffa-endless-sdk WeixinJSBridge ${funName} res: `, res);\r\n//        if (res.status === undefined) {\r\n//          callback && callback({\r\n//            ...res,\r\n//          });\r\n//        } else if (res.status === 'success') {\r\n//          console.log('res.status === success: ', res.status === 'success');\r\n//          callbackSuccessFun(res);\r\n//          this.receive({\r\n//            data: res,\r\n//          });\r\n//        } else {\r\n//          callbackErrorFun(res);\r\n//        }\r\n//      });\r\n//    }\r\n//    /// #endif\r\n\r\n//    /// #if BUILD_PLATFORM === 'MINIPROGRAM'\r\n    wx.invokeNativePlugin({\r\n      ...params,\r\n      complete: (res: any) => {\r\n        console.log(`wx ${funName} res: `, res);\r\n        if (res.status === undefined) {\r\n          callback && callback({\r\n            ...res,\r\n          });\r\n        } else if (res.status === 'success') {\r\n          callbackSuccessFun(res);\r\n          this.receive({\r\n            data: res,\r\n          });\r\n        } else {\r\n          callbackErrorFun(res);\r\n        }\r\n      }\r\n    });\r\n//    /// #endif\r\n  }\r\n}\r\n","import { 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 {\r\n  IInitData,\r\n  UserResponse,\r\n  AccountInfo,\r\n  UserResponseStatus,\r\n  EndlessSignMessageInput,\r\n  EndlessSignMessageOutput,\r\n  EndlessSignAndSubmitTransactionInput,\r\n  EndlessWalletTransactionType,\r\n  UserRejection,\r\n  NetworkInfo,\r\n  ChainData,\r\n} from './types';\r\n// web and WebView\r\n///// #if BUILD_PLATFORM !== 'MINIPROGRAM'\r\n//import { Endless, EndlessConfig } from '@endlesslab/endless-ts-sdk';\r\n///// #endif\r\nimport { isLuffa, isLuffaMiniProgram, isLuffaMiniProgramWebview, networkMap } from './utils';\r\nexport { isLuffa, isLuffaMiniProgram, isLuffaMiniProgramWebview } 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 { EndLessSDKEvent } from './message/types';\r\nexport { UserResponseStatus, EndlessSendTransactionType, EndlessWalletTransactionType } from './types';\r\nexport type { UserResponse, AccountInfo, EndlessSignAndSubmitTransactionInput } from './types';\r\nexport enum MethodName {\r\n  CONNECT = 'connect',\r\n  GETACCOUNT = 'getAccount',\r\n  DISCONNECT = 'disconnect',\r\n  NETWORK_CHANGE = 'luffa_switchChain',\r\n  SIGN_MESSAGE = 'signMessage',\r\n  SEND_TRANSACTION = 'sendTransaction',\r\n  SIGN_AND_SUBMIT_TRANSACTION = 'signAndSubmitTransaction',\r\n  SIGN_BUILD_TRANSACTION = 'signBuildTransaction',\r\n  PACKAGETRANSACTIONV2 = 'packageTransactionV2',\r\n  ACCOUNT_CHANGE = 'accountChange',\r\n}\r\nexport class EndlessLuffaSdk {\r\n  static readonly version: string = '1.1.9';\r\n  private static _instance: EndlessLuffaSdk;\r\n  private message: PostMessage | null = null;\r\n  private _metadata: Metadata = {} as Metadata;\r\n  private _initData: IInitData = {} as IInitData;\r\n  private _endless: any | null = null;\r\n  private _endlessConfig: EndlessConfig | null = null;\r\n  private accountAddress: string | null = null;\r\n\r\n  static getIninData = (): IInitData => {\r\n    if (EndlessLuffaSdk._instance) {\r\n      return EndlessLuffaSdk._instance._initData;\r\n    } else {\r\n      return {} as IInitData;\r\n    }\r\n  };\r\n  static getAccountAddress = () => {\r\n    if (EndlessLuffaSdk._instance) {\r\n      return EndlessLuffaSdk._instance.accountAddress;\r\n    } else {\r\n      return null;\r\n    }\r\n  };\r\n  static setAccountAddress = (accountAddress: string | null) => {\r\n    if (EndlessLuffaSdk._instance) {\r\n      EndlessLuffaSdk._instance.accountAddress = accountAddress;\r\n    }\r\n  };\r\n\r\n  constructor(initData: IInitData) {\r\n    if (EndlessLuffaSdk._instance) return EndlessLuffaSdk._instance;\r\n    this.message = new PostMessage();\r\n    this.initWalletEvent();\r\n    this.initConfig(initData);\r\n    EndlessLuffaSdk._instance = this;\r\n  }\r\n\r\n  private initConfig(initData: IInitData) {\r\n    this._initData = { ...(initData || {}), callbackWalletName: 'endlessWallet' };\r\n    // web and WebView\r\n//    /// #if BUILD_PLATFORM !== 'MINIPROGRAM'\r\n//    this._endlessConfig = new EndlessConfig({\r\n//      network: initData.network as unknown as any,\r\n//      miniprogram: initData.miniprogram,\r\n//    });\r\n//    \r\n//    this._endless = new Endless(this._endlessConfig);\r\n//    this.getMetadata();\r\n//    /// #endif\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  async changeNetwork(data: IInitData) {\r\n    return new Promise((resolve) => {\r\n      this.message?.sendMessage(\r\n        {\r\n          uuid: new Date().getTime().toString(),\r\n          methodName: MethodName.NETWORK_CHANGE,\r\n          metadata: this._metadata,\r\n          data: {\r\n            targetNet: networkMap[data.network] ?? data.network,\r\n          },\r\n        },\r\n        (res) => {\r\n          if (res?.network) {\r\n            this._initData.network = res.network;\r\n          }\r\n          const result = {\r\n            ...res\r\n          };\r\n          resolve(result);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  private getMetadata() {\r\n    if (!window) {\r\n      return;\r\n    }\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    this.setMetaData({\r\n      title: window.document.title,\r\n      url: window.location.href,\r\n      origin: window.location.origin,\r\n      icon: iconUrl,\r\n    })\r\n  }\r\n\r\n  setMetaData(data: Partial<Metadata>) {\r\n    Object.assign(this._metadata, data);\r\n  }\r\n\r\n  request = (data: IRequestData, callback?: (data: unknown) => void) => {\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        initData: data?.initData,\r\n      },\r\n      callback\r\n    );\r\n  };\r\n\r\n  getAccount = (): Promise<UserResponse<AccountInfo>> => {\r\n    return new Promise((resolve) => {\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 = 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  connect = (callback?: (data: AccountInfo) => void): Promise<UserResponse<AccountInfo>> => {\r\n    return new Promise((resolve) => {\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          if (data?.account) {\r\n            this.accountAddress = 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  disconnect = (callback?: (data: unknown) => void): Promise<void> => {\r\n    return new Promise((resolve, reject) => {\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          this.accountAddress = null;\r\n          if (callback) callback(data);\r\n          resolve();\r\n        }\r\n      );\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(async (resolve) => {\r\n      if (!this.accountAddress) {\r\n        await this.connect();\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          console.log('signMessage res: ', res);\r\n          if (res?.signature) {\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  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      if (!this.accountAddress) {\r\n        await this.connect();\r\n      }\r\n\r\n      if (!this.accountAddress) {\r\n        const result: UserRejection = { status: UserResponseStatus.REJECTED, message: 'Wallet not linked' };\r\n        resolve(result);\r\n        return;\r\n      }\r\n      let transaction;\r\n      let methodName = MethodName.SIGN_AND_SUBMIT_TRANSACTION;\r\n      // TODO MiniProgram build transaction\r\n      \r\n//      /// #if BUILD_PLATFORM === 'MINIPROGRAM'\r\n      methodName = MethodName.PACKAGETRANSACTIONV2;\r\n      transaction = data;\r\n//      /// #endif\r\n//      /// #if BUILD_PLATFORM !== 'MINIPROGRAM'\r\n//      if (!this._endless) {\r\n//        const result: UserRejection = { status: UserResponseStatus.REJECTED, message: 'Wallet not linked' };\r\n//        resolve(result);\r\n//        return;\r\n//      }\r\n//      transaction = await this._endless.transaction.build.simple({\r\n//        sender: this.accountAddress,\r\n//        data: data.payload,\r\n//        options: {\r\n//          ...(data.options || {}),\r\n//        },\r\n//      });\r\n//      transaction = transaction.bcsToHex().toString();\r\n//      /// #endif\r\n      this.message?.sendMessage(\r\n        {\r\n          uuid: new Date().getTime().toString(),\r\n          methodName,\r\n          metadata: this._metadata,\r\n          data: {\r\n            serializedTransaction: {\r\n              data: transaction,\r\n              sender: this.accountAddress,\r\n            },\r\n          },\r\n        },\r\n        (res) => {\r\n          console.log('signAndSubmitTransaction res: ', res);\r\n          if (res?.hash) {\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  signTransaction = (\r\n    transactionHex: string,\r\n    transactionType: EndlessWalletTransactionType = EndlessWalletTransactionType.SIMPLE\r\n  ): Promise<UserResponse<{ data: string }>> => {\r\n    return new Promise(async (resolve) => {\r\n      if (!this.accountAddress || !this._endless) {\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      this.message?.sendMessage(\r\n        {\r\n          uuid: new Date().getTime().toString(),\r\n          methodName: MethodName.SIGN_BUILD_TRANSACTION,\r\n          metadata: this._metadata,\r\n          data: {\r\n            transactionData: transactionHex,\r\n            sender: this.accountAddress,\r\n            type: transactionType,\r\n          },\r\n        },\r\n        (res) => {\r\n          if (res?.signature) {\r\n            const result = {\r\n              status: UserResponseStatus.APPROVED,\r\n              args: {\r\n                data: res.signature,\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  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":["EndLessSDKEvent","UserResponseStatus","EndlessSendTransactionType","EndlessWalletTransactionType","NetworkToNetworkName","isLuffa","isLuffaMiniProgramWebview","isLuffaMiniProgram","networkMap","_PostMessage","__publicField","msg","eventType","network","networkMap","accountInfo","EndlessLuffaSdk","methodName","callback","index","payload","d","data","error","initData","response","responseData","funName","accountAddress","params","callbackSuccessFun","res","callbackErrorFun","PostMessage","MethodName","_EndlessLuffaSdk","initData","__publicField","data","callback","resolve","res","reject","result","methodName","transaction","transactionHex","transactionType","PostMessage","payload","networkMap","iconUrl","accountAddress","EndlessLuffaSdk"]}