{
  "version": 3,
  "sources": ["../../src/pages/sign/components/info-sign.tsx", "../../src/utils/solana-utils.ts"],
  "sourcesContent": ["import { RecordType } from '@particle-network/analytics';\nimport {\n  SolanaEnhancedMethod,\n  SolanaRpcMethod,\n  analyticsRecord,\n  getChainIcon,\n  isNeedRestoreWallet,\n  particleAuth,\n  syncUserInfo,\n  type SolanaDeserializeTransactionResult,\n  type SplTokenChangeInfo,\n  type TokenChangeInfo,\n} from '@particle-network/auth-core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport { Button, Modal, Tabs } from 'antd';\nimport base58 from 'bs58';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport { AuthError } from '../../../api/model/authError';\nimport { PromptSettingType } from '../../../api/model/bundle';\nimport { AuthPage } from '../../../components/customRouter';\nimport IconCopy from '../../../components/icon/icon-copy';\nimport PowerFooter from '../../../components/power-footer';\nimport {\n  useAuthCoreModal,\n  useCustomNavigate,\n  useEvents,\n  useModalOptions,\n  useParticleAuth,\n  useTranslation,\n} from '../../../context';\nimport { useError } from '../../../context/hooks/useError';\nimport useMessage from '../../../context/hooks/useMessage';\nimport { usePaymentPassword } from '../../../context/hooks/usePaymentPassword';\nimport { AuthCoreModalEvent } from '../../../context/types';\nimport { getChainDisplayName } from '../../../utils/chain-utils';\nimport { shortString } from '../../../utils/common-utils';\nimport { isTelegramWebApp } from '../../../utils/isTelegramWebApp';\nimport { formatTokenAmount } from '../../../utils/number-utils';\nimport solana from '../../../utils/solana-utils';\nimport styles from './info-sign.less';\nimport Menu from './menu';\n\ninterface IProps {\n  param: unknown;\n  method: SolanaRpcMethod;\n  chainId?: number;\n  loginAuthorizationSign?: boolean;\n}\nfunction InfoSign(props: IProps) {\n  const { method, param, chainId, loginAuthorizationSign } = props;\n  const { t } = useTranslation();\n  const navigate = useCustomNavigate();\n  const { setPaymentVerify, userInfo, setPaymentPassword } = useParticleAuth();\n  const { events } = useEvents();\n  const { modalOptions } = useModalOptions();\n  const { authCoreModal } = useAuthCoreModal();\n  const { errorHandle } = useError();\n\n  const [loading, setLoading] = useState(false);\n  const message = useMessage();\n  const [transactionInfo, setTransactionInfo] = useState<SolanaDeserializeTransactionResult>();\n\n  const [nftChanges, setNftChanges] = useState<TokenChangeInfo[]>();\n\n  const [tokenChanges, setTokenChanges] = useState<SplTokenChangeInfo[]>();\n\n  const [headerTitle, setHeaderTitle] = useState<string>('');\n  const [headerDes, setHeaderDes] = useState<string>('');\n\n  const { hasSetPaymentPassword, showSetPaymentPasswordOrConfirm } = usePaymentPassword();\n\n  const chain = useMemo(() => {\n    return {\n      id: chainId || particleAuth.solana.chainId,\n      name: 'Solana',\n    };\n  }, []);\n\n  const shortAddress = useMemo(() => {\n    const address = particleAuth.solana.selectedAddress as string;\n    return shortString(address);\n  }, []);\n\n  useEffect(() => {\n    syncUserInfo().catch((e) => console.log('syncUserInfo', e));\n    if (isNeedRestoreWallet()) {\n      navigate(AuthPage.MasterPasswordVerify);\n    }\n  }, [navigate]);\n\n  const loadsecurityAccounts = () => {\n    syncUserInfo()\n      .then(() => {\n        approveSign();\n      })\n      .catch((error) => {\n        setLoading(false);\n        message.error(error.message ?? 'Sign Error');\n      });\n  };\n\n  const finallyHandle = (result: any, error?: any) => {\n    events.emit(AuthCoreModalEvent.SignResponse, {\n      result,\n      error,\n    });\n  };\n\n  async function asyncFilter<T>(predicate: (indo: T) => Promise<boolean>, arr?: T[]): Promise<T[]> {\n    if (!arr) {\n      return [];\n    }\n    const results = await Promise.all(arr.map(predicate));\n    return arr.filter((_v, index) => results[index]);\n  }\n\n  const approveSign = async () => {\n    if (!method) return;\n\n    analyticsRecord({\n      // eslint-disable-next-line camelcase\n      record_type: RecordType.PAGE_SIGN_CONFIRM_BUTTON_CLICK, // confirm\u6309\u94AE\u70B9\u51FB\n    });\n\n    if (userInfo?.security_account?.has_set_payment_password) {\n      setPaymentVerify({\n        visible: true,\n        onVerifyCompleted: approveSignImpl,\n      });\n    } else if (\n      method === SolanaRpcMethod.signAndSendTransaction ||\n      method === SolanaRpcMethod.signTransaction ||\n      method === SolanaRpcMethod.signAllTransactions ||\n      modalOptions?.promptSettingConfig?.promptPaymentPasswordSettingWhenSign === PromptSettingType.everyAndNotSkip\n    ) {\n      // \u663E\u793A\u8BBE\u7F6E\u652F\u4ED8\u5BC6\u7801\n      showSetPaymentPasswordOrConfirm(approveSignImpl);\n    } else {\n      approveSignImpl();\n    }\n  };\n\n  const approveSignImpl = async () => {\n    if (!method) return;\n    setLoading(true);\n    let signed;\n    try {\n      if (method === SolanaRpcMethod.signMessage) {\n        const { signature } = await particleAuth.solana.signMessage(param as Uint8Array);\n        signed = signature;\n      } else if (method === SolanaRpcMethod.signAndSendTransaction) {\n        const { signature } = await particleAuth.solana.signAndSendTransaction(\n          param as Transaction | VersionedTransaction,\n          chain.id\n        );\n        signed = signature;\n      } else if (method === SolanaRpcMethod.signTransaction) {\n        signed = await particleAuth.solana.signTransaction(param as Transaction | VersionedTransaction, chain.id);\n      } else if (method === SolanaRpcMethod.signAllTransactions) {\n        signed = await particleAuth.solana.signAllTransactions(\n          param as (Transaction | VersionedTransaction)[],\n          chain.id\n        );\n      } else {\n        throw new Error('Unknown method');\n      }\n\n      analyticsRecord({\n        // eslint-disable-next-line camelcase\n        record_type: RecordType.PAGE_SIGN_CONFIRM_BUTTON_CLICK_SUCCESS, // confirm\u6210\u529F\n      });\n    } catch (e: any) {\n      console.error('approveSignImpl error', method, e);\n      analyticsRecord({\n        // eslint-disable-next-line camelcase\n        record_type: RecordType.PAGE_SIGN_CONFIRM_BUTTON_CLICK_FAILURE, // confirm\u5931\u8D25\n      });\n\n      if (e?.error_code === 50103 && !userInfo?.security_account?.has_set_payment_password) {\n        loadsecurityAccounts();\n      } else if (e?.message === 'Local Key not found' || e?.message === 'Master password decryption error') {\n        navigate(AuthPage.MasterPasswordVerify);\n      } else {\n        errorHandle(e);\n      }\n    } finally {\n      setLoading(false);\n    }\n\n    if (signed) {\n      if (method === SolanaRpcMethod.signMessage && loginAuthorizationSign) {\n        events.emit(AuthCoreModalEvent.LoginSuccess, {\n          ...userInfo,\n          authorization: {\n            message: base58.encode(param as Uint8Array),\n            signature: signed,\n          },\n        });\n      } else {\n        finallyHandle(signed);\n      }\n    }\n  };\n\n  const cancelSign = () => {\n    if (loading) {\n      return;\n    }\n\n    if (loginAuthorizationSign) {\n      events.emit(AuthCoreModalEvent.LoginSuccess, userInfo);\n    } else {\n      finallyHandle(undefined, AuthError.userRejectedRequest());\n    }\n  };\n\n  useEffect(() => {\n    if (method === SolanaRpcMethod.signMessage) {\n      setHeaderTitle(t('sign.signature_message') as string);\n      setHeaderDes(t('sign.signature_title') as string);\n    } else if (method === SolanaRpcMethod.signAndSendTransaction) {\n      setHeaderTitle(t('sign.send_transaction') as string);\n      setHeaderDes(t('sign.approve_and').format(getChainDisplayName(chain)));\n      const serializeTx = (param as Transaction | VersionedTransaction).serialize({\n        requireAllSignatures: false,\n        verifySignatures: false,\n      });\n      deserializeTransaction([base58.encode(serializeTx)]);\n    } else if (method === SolanaRpcMethod.signTransaction) {\n      setHeaderTitle(t('sign.sign_transaction') as string);\n      setHeaderDes(t('sign.sign_but') as string);\n      const serializeTx = (param as Transaction | VersionedTransaction).serialize({\n        requireAllSignatures: false,\n        verifySignatures: false,\n      });\n      deserializeTransaction([base58.encode(serializeTx)]);\n    } else if (method === SolanaRpcMethod.signAllTransactions) {\n      setHeaderTitle(t('sign.sign_transaction') as string);\n      setHeaderDes(t('sign.sign_but') as string);\n      const serializeTxs = (param as (Transaction | VersionedTransaction)[]).map((tx) =>\n        base58.encode(\n          tx.serialize({\n            requireAllSignatures: false,\n            verifySignatures: false,\n          })\n        )\n      );\n      deserializeTransaction(serializeTxs);\n    } else {\n      throw new Error('Unknown method');\n    }\n  }, [param, t]);\n\n  useEffect(() => {\n    // init connect();\n    particleAuth.solana.connect();\n  }, []);\n\n  const deserializeTransaction = (messages: string[]) => {\n    particleAuth.solana\n      .request({\n        chainId: chain.id,\n        method: SolanaEnhancedMethod.enhancedDeserializeTransaction,\n        params: messages,\n      })\n      .then((result) => {\n        setTransactionInfo(result);\n        asyncFilter(async (info: any) => {\n          const associatedTokenAddress = await solana.findAssociatedTokenAddress(\n            particleAuth.solana.selectedAddress as string,\n            info.mint\n          );\n          return info.associatedTokenAddress === associatedTokenAddress.toBase58();\n        }, result?.estimatedChanges?.nfts).then((results) => {\n          console.log('NFTChanges', results.length);\n          setNftChanges(results);\n        });\n\n        asyncFilter(async (info: any) => {\n          const associatedTokenAddress = await solana.findAssociatedTokenAddress(\n            particleAuth.solana.selectedAddress as string,\n            info.mint\n          );\n          return info.associatedTokenAddress === associatedTokenAddress.toBase58();\n        }, result?.estimatedChanges?.tokens).then((results) => {\n          console.log('TokenChanges', results.length);\n          setTokenChanges(results);\n        });\n      })\n      .catch((error) => {\n        console.log('deserializeTransaction error', error);\n        Modal.error({\n          title: error.message ?? 'Deserialize Transaction Error',\n          okCancel: true,\n          cancelText: t('common.cancel'),\n          okText: t('common.retry'),\n          wrapClassName: 'auth-core-modal-error',\n          getContainer: () => {\n            return authCoreModal.rootBody as HTMLElement;\n          },\n          onOk: () => {\n            deserializeTransaction(messages);\n          },\n        });\n      });\n  };\n\n  const signMessage = () => {\n    const textDecoder = new TextDecoder();\n    const decodedString = textDecoder.decode(param as any);\n    return (\n      <div className='sign-message'>\n        <div className={'message' + (hasSetPaymentPassword ? '' : ' no-password-tip')}>\n          <div className='pre-wrap personal-message'>{decodedString}</div>\n        </div>\n      </div>\n    );\n  };\n\n  const signTransaction = () => {\n    return (\n      <Tabs\n        defaultActiveKey='1'\n        items={[\n          {\n            label: t('sign.details'),\n            key: '1',\n            children: (\n              <>\n                <div className='balance-change'>\n                  <div className='title'>{t('sign.estimated_balance_change')}</div>\n                  <div className='change-body'>\n                    {transactionInfo?.estimatedChanges?.sols\n                      .filter((info) => info.address === (particleAuth?.solana?.selectedAddress as string))\n                      .map((info, index) => {\n                        return (\n                          <div className='change-title' key={`sol-change-${index}`}>\n                            SOL\n                            <div className='change-val' style={info.lamportsChange < 0 ? { color: '#ea4335' } : {}}>\n                              {info.lamportsChange < 0 ? '' : '+'}\n                              {formatTokenAmount(info.lamportsChange, 9)}\n                            </div>\n                          </div>\n                        );\n                      })}\n\n                    {nftChanges?.map((info, index) => {\n                      return (\n                        <div className='change-title' key={`nft-change-${index}`}>\n                          {info.name ? info.name : 'Unknown NFT'}\n                          <div className='change-val' style={info.amountChange < 0 ? { color: '#ea4335' } : {}}>\n                            {info.amountChange < 0 ? '' : '+'}\n                            {info.amountChange}\n                          </div>\n                        </div>\n                      );\n                    })}\n\n                    {tokenChanges?.map((info, index) => {\n                      return (\n                        <div className='change-title' key={`token-change-${index}`}>\n                          {info.name ? info.name : 'Unknown Token'}\n                          <div className='change-val' style={info.amountChange < 0 ? { color: '#ea4335' } : {}}>\n                            {info.amountChange < 0 ? '' : '+'}\n                            {formatTokenAmount(info.amountChange, info.decimals)}\n                          </div>\n                        </div>\n                      );\n                    })}\n                  </div>\n                </div>\n\n                <div className='net-fee solana'>\n                  <div className='title'>\n                    {t('sign.network_fee')}\n                    {transactionInfo && (\n                      <div className='fee-val'>{formatTokenAmount(transactionInfo.estimatedLamportsFee, 9)} SOL</div>\n                    )}\n                  </div>\n                </div>\n              </>\n            ),\n          },\n          {\n            label: t('sign.data'),\n            key: '2',\n            children: (\n              <div>\n                {transactionInfo?.instructions.map((instruction, index) => {\n                  return (\n                    <div className='inner-instruction' key={`instruction-${index}`}>\n                      <div className='inner-content'>\n                        <div className='content-item'>\n                          <div className='item'>\n                            <div className='item-0'>\n                              #{index + 1} - {t(`program.${instruction.type}`)}\n                            </div>\n                            <div className='item-1 mt10'>\n                              {t('sign.program_id')}\n                              <span>{shortString(instruction.programId)}</span>\n                            </div>\n                            <div className='item-1 mt15'>\n                              {t('sign.data')}\n                              <span>{shortString(instruction.data)}</span>\n                            </div>\n                          </div>\n                        </div>\n                      </div>\n                    </div>\n                  );\n                })}\n              </div>\n            ),\n          },\n        ]}\n      />\n    );\n  };\n\n  return (\n    <div className='info-sign'>\n      <style>{styles as unknown as string}</style>\n      {!hasSetPaymentPassword && (\n        <div className='has-payment-password' data-telegram={isTelegramWebApp()}>\n          <div className='has-payment-password-icon'></div>\n          <div className='has-payment-password-tip'>{t('account.waring_tip1')}</div>\n          <div className='has-payment-password-set' onClick={setPaymentPassword}>\n            {t('account.set')}\n          </div>\n        </div>\n      )}\n      <div className={'scroll-part' + (hasSetPaymentPassword ? '' : ' no-password-tip')}>\n        <Menu userInfo={userInfo} transactionInfo={transactionInfo} />\n        <div className='info-request'>{headerTitle}</div>\n        <div className='info-title'>\n          <img src={getChainIcon(chain)} alt='' />\n          {getChainDisplayName(chain)}\n        </div>\n        <CopyToClipboard\n          text={particleAuth.solana.selectedAddress as string}\n          onCopy={() => message.success(t('new.copied_to'))}\n        >\n          <div className='info-address'>\n            {shortAddress}\n            <div className='copy-icon'>\n              <IconCopy />\n            </div>\n          </div>\n        </CopyToClipboard>\n        <div className='info-des'>{headerDes}</div>\n        <div className='apart-line'></div>\n        {method === SolanaRpcMethod.signMessage && signMessage()}\n        {method !== SolanaRpcMethod.signMessage && signTransaction()}\n      </div>\n\n      <div className='btn-box'>\n        <div>\n          <Button className='btn-cancel' onClick={cancelSign}>\n            {t('common.cancel')}\n          </Button>\n          <Button className='btn-approve' onClick={approveSign} loading={loading}>\n            {t('common.confirm')}\n          </Button>\n        </div>\n        <PowerFooter></PowerFooter>\n      </div>\n    </div>\n  );\n}\n\nexport default InfoSign;\n", "import type { PublicKey } from '@solana/web3.js';\n\nconst SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';\n\nconst solana = {\n  async findAssociatedTokenAddress(walletAddress: string, tokenMintAddress: string): Promise<PublicKey> {\n    const { PublicKey } = await import('@solana/web3.js');\n    const TOKEN_PROGRAM_ID = new PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA');\n    return PublicKey.findProgramAddressSync(\n      [\n        new PublicKey(walletAddress).toBuffer(),\n        TOKEN_PROGRAM_ID.toBuffer(),\n        new PublicKey(tokenMintAddress).toBuffer(),\n      ],\n      new PublicKey(SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID)\n    )[0];\n  },\n};\n\nexport default solana;\n"],
  "mappings": "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",
  "names": ["_a", "info_sign_default"]
}
