@dynamic-labs-sdk/tempo 0.0.0 → 1.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +97 -0
  2. package/dist/TempoNetworkProvider.types.d.ts +12 -0
  3. package/dist/TempoNetworkProvider.types.d.ts.map +1 -0
  4. package/dist/TempoWalletAccount.types.d.ts +12 -0
  5. package/dist/TempoWalletAccount.types.d.ts.map +1 -0
  6. package/dist/TempoWalletProvider.types.d.ts +48 -0
  7. package/dist/TempoWalletProvider.types.d.ts.map +1 -0
  8. package/dist/addTempoExtension/addTempoExtension.d.ts +24 -0
  9. package/dist/addTempoExtension/addTempoExtension.d.ts.map +1 -0
  10. package/dist/constants.d.ts +6 -0
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/errors/InvalidTempoNetworkError/InvalidTempoNetworkError.d.ts +19 -0
  13. package/dist/errors/InvalidTempoNetworkError/InvalidTempoNetworkError.d.ts.map +1 -0
  14. package/dist/errors/InvalidTempoNetworkError/index.d.ts +2 -0
  15. package/dist/errors/InvalidTempoNetworkError/index.d.ts.map +1 -0
  16. package/dist/errors/TempoBusinessAccountTransactionNotSupportedError/TempoBusinessAccountTransactionNotSupportedError.d.ts +17 -0
  17. package/dist/errors/TempoBusinessAccountTransactionNotSupportedError/TempoBusinessAccountTransactionNotSupportedError.d.ts.map +1 -0
  18. package/dist/errors/TempoBusinessAccountTransactionNotSupportedError/index.d.ts +2 -0
  19. package/dist/errors/TempoBusinessAccountTransactionNotSupportedError/index.d.ts.map +1 -0
  20. package/dist/errors/TempoNativeTokenError/TempoNativeTokenError.d.ts +17 -0
  21. package/dist/errors/TempoNativeTokenError/TempoNativeTokenError.d.ts.map +1 -0
  22. package/dist/errors/TempoRawMessageNotUtf8Error/TempoRawMessageNotUtf8Error.d.ts +17 -0
  23. package/dist/errors/TempoRawMessageNotUtf8Error/TempoRawMessageNotUtf8Error.d.ts.map +1 -0
  24. package/dist/errors/TempoRawMessageNotUtf8Error/index.d.ts +2 -0
  25. package/dist/errors/TempoRawMessageNotUtf8Error/index.d.ts.map +1 -0
  26. package/dist/errors/TempoTransactionValidationError/TempoTransactionValidationError.d.ts +19 -0
  27. package/dist/errors/TempoTransactionValidationError/TempoTransactionValidationError.d.ts.map +1 -0
  28. package/dist/errors/TempoTransactionValidationError/index.d.ts +2 -0
  29. package/dist/errors/TempoTransactionValidationError/index.d.ts.map +1 -0
  30. package/dist/errors/TempoTypedDataNotSupportedError/TempoTypedDataNotSupportedError.d.ts +17 -0
  31. package/dist/errors/TempoTypedDataNotSupportedError/TempoTypedDataNotSupportedError.d.ts.map +1 -0
  32. package/dist/errors/TempoTypedDataNotSupportedError/index.d.ts +2 -0
  33. package/dist/errors/TempoTypedDataNotSupportedError/index.d.ts.map +1 -0
  34. package/dist/exports/index.d.ts +12 -0
  35. package/dist/exports/index.d.ts.map +1 -0
  36. package/dist/exports/waas.d.ts +9 -0
  37. package/dist/exports/waas.d.ts.map +1 -0
  38. package/dist/getTempoPublicClient/getTempoPublicClient.d.ts +28 -0
  39. package/dist/getTempoPublicClient/getTempoPublicClient.d.ts.map +1 -0
  40. package/dist/index.cjs +65 -0
  41. package/dist/index.cjs.map +1 -0
  42. package/dist/index.esm.js +57 -0
  43. package/dist/index.esm.js.map +1 -0
  44. package/dist/isTempoNetworkProvider/isTempoNetworkProvider.d.ts +17 -0
  45. package/dist/isTempoNetworkProvider/isTempoNetworkProvider.d.ts.map +1 -0
  46. package/dist/isTempoWalletAccount/isTempoWalletAccount.d.ts +19 -0
  47. package/dist/isTempoWalletAccount/isTempoWalletAccount.d.ts.map +1 -0
  48. package/dist/isTempoWalletProvider/isTempoWalletProvider.d.ts +21 -0
  49. package/dist/isTempoWalletProvider/isTempoWalletProvider.d.ts.map +1 -0
  50. package/dist/registerTempoNetworkProviderBuilder/registerTempoNetworkProviderBuilder.d.ts +4 -0
  51. package/dist/registerTempoNetworkProviderBuilder/registerTempoNetworkProviderBuilder.d.ts.map +1 -0
  52. package/dist/sendTip20Transaction/sendTip20Transaction.d.ts +40 -0
  53. package/dist/sendTip20Transaction/sendTip20Transaction.d.ts.map +1 -0
  54. package/dist/tempoChainIds-Ce9YCriF.cjs +301 -0
  55. package/dist/tempoChainIds-Ce9YCriF.cjs.map +1 -0
  56. package/dist/tempoChainIds-Dt0jiwLT.esm.js +236 -0
  57. package/dist/tempoChainIds-Dt0jiwLT.esm.js.map +1 -0
  58. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  59. package/dist/utils/createTempoNetworkProvider/createTempoNetworkProvider.d.ts +5 -0
  60. package/dist/utils/createTempoNetworkProvider/createTempoNetworkProvider.d.ts.map +1 -0
  61. package/dist/utils/mapNetworkDataToViemChain/index.d.ts +2 -0
  62. package/dist/utils/mapNetworkDataToViemChain/index.d.ts.map +1 -0
  63. package/dist/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.d.ts +19 -0
  64. package/dist/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.d.ts.map +1 -0
  65. package/dist/utils/tempoChainIds/tempoChainIds.d.ts +22 -0
  66. package/dist/utils/tempoChainIds/tempoChainIds.d.ts.map +1 -0
  67. package/dist/utils/tempoConfirmTransaction/index.d.ts +2 -0
  68. package/dist/utils/tempoConfirmTransaction/index.d.ts.map +1 -0
  69. package/dist/utils/tempoConfirmTransaction/tempoConfirmTransaction.d.ts +21 -0
  70. package/dist/utils/tempoConfirmTransaction/tempoConfirmTransaction.d.ts.map +1 -0
  71. package/dist/utils/tempoTransferAmount/index.d.ts +2 -0
  72. package/dist/utils/tempoTransferAmount/index.d.ts.map +1 -0
  73. package/dist/utils/tempoTransferAmount/tempoTransferAmount.d.ts +37 -0
  74. package/dist/utils/tempoTransferAmount/tempoTransferAmount.d.ts.map +1 -0
  75. package/dist/waas/WaasTempoWalletProvider.types.d.ts +23 -0
  76. package/dist/waas/WaasTempoWalletProvider.types.d.ts.map +1 -0
  77. package/dist/waas/addWaasTempoExtension/addWaasTempoExtension.d.ts +21 -0
  78. package/dist/waas/addWaasTempoExtension/addWaasTempoExtension.d.ts.map +1 -0
  79. package/dist/waas/addWaasTempoExtension/index.d.ts +2 -0
  80. package/dist/waas/addWaasTempoExtension/index.d.ts.map +1 -0
  81. package/dist/waas/sendTempoTransaction/index.d.ts +2 -0
  82. package/dist/waas/sendTempoTransaction/index.d.ts.map +1 -0
  83. package/dist/waas/sendTempoTransaction/sendTempoTransaction.d.ts +42 -0
  84. package/dist/waas/sendTempoTransaction/sendTempoTransaction.d.ts.map +1 -0
  85. package/dist/waas/utils/assertValidTempoTransactionCalls/assertValidTempoTransactionCalls.d.ts +18 -0
  86. package/dist/waas/utils/assertValidTempoTransactionCalls/assertValidTempoTransactionCalls.d.ts.map +1 -0
  87. package/dist/waas/utils/assertValidTempoTransactionCalls/index.d.ts +2 -0
  88. package/dist/waas/utils/assertValidTempoTransactionCalls/index.d.ts.map +1 -0
  89. package/dist/waas/utils/assertValidTempoTransactionRequest/assertValidTempoTransactionRequest.d.ts +41 -0
  90. package/dist/waas/utils/assertValidTempoTransactionRequest/assertValidTempoTransactionRequest.d.ts.map +1 -0
  91. package/dist/waas/utils/assertValidTempoTransactionRequest/index.d.ts +3 -0
  92. package/dist/waas/utils/assertValidTempoTransactionRequest/index.d.ts.map +1 -0
  93. package/dist/waas/utils/createViemWalletClientForWaasTempo/createViemWalletClientForWaasTempo.d.ts +41 -0
  94. package/dist/waas/utils/createViemWalletClientForWaasTempo/createViemWalletClientForWaasTempo.d.ts.map +1 -0
  95. package/dist/waas/utils/createViemWalletClientForWaasTempo/index.d.ts +2 -0
  96. package/dist/waas/utils/createViemWalletClientForWaasTempo/index.d.ts.map +1 -0
  97. package/dist/waas/utils/createWalletProviderForWaasTempo/createWalletProviderForWaasTempo.d.ts +23 -0
  98. package/dist/waas/utils/createWalletProviderForWaasTempo/createWalletProviderForWaasTempo.d.ts.map +1 -0
  99. package/dist/waas/utils/createWalletProviderForWaasTempo/index.d.ts +2 -0
  100. package/dist/waas/utils/createWalletProviderForWaasTempo/index.d.ts.map +1 -0
  101. package/dist/waas/utils/isBusinessAccountWalletAccount/index.d.ts +2 -0
  102. package/dist/waas/utils/isBusinessAccountWalletAccount/index.d.ts.map +1 -0
  103. package/dist/waas/utils/isBusinessAccountWalletAccount/isBusinessAccountWalletAccount.d.ts +23 -0
  104. package/dist/waas/utils/isBusinessAccountWalletAccount/isBusinessAccountWalletAccount.d.ts.map +1 -0
  105. package/dist/waas/utils/serializeTempoTransactionForWaas/index.d.ts +3 -0
  106. package/dist/waas/utils/serializeTempoTransactionForWaas/index.d.ts.map +1 -0
  107. package/dist/waas/utils/serializeTempoTransactionForWaas/serializeTempoTransactionForWaas.d.ts +57 -0
  108. package/dist/waas/utils/serializeTempoTransactionForWaas/serializeTempoTransactionForWaas.d.ts.map +1 -0
  109. package/dist/waas/utils/signMessage/index.d.ts +2 -0
  110. package/dist/waas/utils/signMessage/index.d.ts.map +1 -0
  111. package/dist/waas/utils/signMessage/signMessage.d.ts +38 -0
  112. package/dist/waas/utils/signMessage/signMessage.d.ts.map +1 -0
  113. package/dist/waas/utils/signRawMessage/index.d.ts +2 -0
  114. package/dist/waas/utils/signRawMessage/index.d.ts.map +1 -0
  115. package/dist/waas/utils/signRawMessage/signRawMessage.d.ts +37 -0
  116. package/dist/waas/utils/signRawMessage/signRawMessage.d.ts.map +1 -0
  117. package/dist/waas.cjs +758 -0
  118. package/dist/waas.cjs.map +1 -0
  119. package/dist/waas.esm.js +754 -0
  120. package/dist/waas.esm.js.map +1 -0
  121. package/package.json +46 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waas.esm.js","names":["signableMessage: string","calls: readonly TempoTransactionCall[]","createViemWalletClient: WaasTempoWalletProvider['createViemWalletClient']","getActiveNetworkId: WaasTempoWalletProvider['getActiveNetworkId']","getConnectedAddresses: WaasTempoWalletProvider['getConnectedAddresses']","signMessage: WaasTempoWalletProvider['signMessage']","signWaasMessage","signRawMessage: WaasTempoWalletProvider['signRawMessage']","signWaasRawMessage","signSerializedTransaction: WaasTempoWalletProvider['signSerializedTransaction']","switchActiveNetwork: WaasTempoWalletProvider['switchActiveNetwork']","destroy: WaasTempoWalletProvider['destroy']","packageName","packageVersion"],"sources":["../src/waas/sendTempoTransaction/sendTempoTransaction.ts","../src/constants.ts","../src/errors/InvalidTempoNetworkError/InvalidTempoNetworkError.ts","../src/errors/TempoBusinessAccountTransactionNotSupportedError/TempoBusinessAccountTransactionNotSupportedError.ts","../src/utils/tempoConfirmTransaction/tempoConfirmTransaction.ts","../src/utils/tempoTransferAmount/tempoTransferAmount.ts","../src/errors/TempoRawMessageNotUtf8Error/TempoRawMessageNotUtf8Error.ts","../src/errors/TempoTransactionValidationError/TempoTransactionValidationError.ts","../src/errors/TempoTypedDataNotSupportedError/TempoTypedDataNotSupportedError.ts","../src/waas/utils/assertValidTempoTransactionCalls/assertValidTempoTransactionCalls.ts","../src/waas/utils/assertValidTempoTransactionRequest/assertValidTempoTransactionRequest.ts","../src/waas/utils/isBusinessAccountWalletAccount/isBusinessAccountWalletAccount.ts","../src/waas/utils/serializeTempoTransactionForWaas/serializeTempoTransactionForWaas.ts","../src/waas/utils/signMessage/signMessage.ts","../src/waas/utils/createViemWalletClientForWaasTempo/createViemWalletClientForWaasTempo.ts","../src/waas/utils/signRawMessage/signRawMessage.ts","../src/waas/utils/createWalletProviderForWaasTempo/createWalletProviderForWaasTempo.ts","../src/waas/addWaasTempoExtension/addWaasTempoExtension.ts","../src/exports/waas.ts"],"sourcesContent":["import { InvalidParamError } from '@dynamic-labs-sdk/client';\nimport type { WalletAccount } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n getDefaultClient,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { isTempoWalletProvider } from '../../isTempoWalletProvider/isTempoWalletProvider';\nimport type { TempoTransactionRequest } from '../utils/assertValidTempoTransactionRequest';\n\ntype SendTempoTransactionParams = Pick<\n TempoTransactionRequest,\n 'calls' | 'feeToken' | 'gas' | 'nonceKey' | 'validAfter' | 'validBefore'\n> & {\n walletAccount: WalletAccount;\n};\n\ntype SendTempoTransactionResult = { transactionHash: string };\n\n/**\n * Sends a Tempo transaction from a Tempo embedded wallet, including the\n * Tempo-only fields: batched calls, a fee token, a nonce key and a validity\n * window. Use it when a plain viem `sendTransaction` cannot express the\n * transaction.\n *\n * @param params.walletAccount - The Tempo embedded wallet account that sends.\n * @param params.calls - The calls the transaction executes atomically.\n * @param [params.feeToken] - TIP-20 token address used to pay the fee.\n * @param [params.gas] - Gas limit. Defaults to a buffered estimate.\n * @param [params.nonceKey] - Nonce key selecting a parallel nonce lane.\n * @param [params.validAfter] - Unix timestamp after which the transaction is valid.\n * @param [params.validBefore] - Unix timestamp after which the transaction expires.\n * @param [client] - The Dynamic client instance. Only required when using multiple clients.\n * @returns The transaction hash.\n * @throws {InvalidParamError} If the wallet account is not a Tempo wallet account.\n * @example\n * ```ts\n * const { transactionHash } = await sendTempoTransaction({\n * calls: [\n * { data: transferData, to: tokenAddress },\n * { data: approveData, to: tokenAddress },\n * ],\n * feeToken: tokenAddress,\n * walletAccount,\n * });\n * ```\n * @see sendTip20Transaction\n * @see getTempoPublicClient\n * @notInstrumented\n */\nexport const sendTempoTransaction = async (\n { walletAccount, ...transaction }: SendTempoTransactionParams,\n client = getDefaultClient()\n): Promise<SendTempoTransactionResult> => {\n const walletProvider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTempoWalletProvider(walletProvider))\n throw new InvalidParamError('Wallet account is not a Tempo wallet account');\n\n assertDefined(\n walletProvider.createViemWalletClient,\n 'Tempo wallet provider cannot create a wallet client'\n );\n\n const walletClient = await walletProvider.createViemWalletClient({\n walletAccount,\n });\n\n assertDefined(\n walletClient.account.signTransaction,\n 'Tempo account cannot sign transactions'\n );\n\n const serializedTransaction = await walletClient.account.signTransaction(\n transaction\n );\n\n const transactionHash = await walletClient.sendRawTransaction({\n serializedTransaction,\n });\n\n return { transactionHash };\n};\n","import type { Chain } from '@dynamic-labs-sdk/client';\n\n\n/**\n * Chain identifier shared by every Tempo wallet provider, network provider and\n * signing request.\n */\nexport const TEMPO_CHAIN = 'TEMPO' satisfies Chain;\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\n/**\n * Thrown when a Tempo wallet provider is asked to activate a network that is\n * not a Tempo network.\n *\n * @example\n * ```ts\n * throw new InvalidTempoNetworkError({ networkId: '1' });\n * ```\n *\n * @see isTempoChainId\n * @see addWaasTempoExtension\n */\nexport class InvalidTempoNetworkError extends BaseError {\n constructor({ networkId }: { networkId: string | number }) {\n super({\n cause: null,\n code: 'invalid_tempo_network_error',\n docsUrl: null,\n name: 'InvalidTempoNetworkError',\n shortMessage: `Network ${networkId} is not a Tempo network`,\n });\n }\n}\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\n/**\n * Thrown when a business-account Tempo wallet is asked to sign a transaction.\n * Business-account transactions need a signing-quorum intent, which the\n * embedded wallet signer does not support for Tempo transactions yet.\n *\n * @example\n * ```ts\n * throw new TempoBusinessAccountTransactionNotSupportedError();\n * ```\n *\n * @see addWaasTempoExtension\n */\nexport class TempoBusinessAccountTransactionNotSupportedError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'tempo_business_account_transaction_not_supported_error',\n docsUrl: null,\n name: 'TempoBusinessAccountTransactionNotSupportedError',\n shortMessage:\n 'Signing Tempo transactions with a business account wallet is not supported',\n });\n }\n}\n","import { InvalidParamError } from '@dynamic-labs-sdk/client';\nimport type { ConfirmTransactionParams } from '@dynamic-labs-sdk/client/core';\nimport type { DynamicClient } from '@dynamic-labs-sdk/client';\n\nimport { getTempoPublicClient } from '../../getTempoPublicClient/getTempoPublicClient';\nimport { isTempoWalletAccount } from '../../isTempoWalletAccount/isTempoWalletAccount';\n\n/**\n * Waits until a transaction sent from a Tempo wallet account is included in a\n * block.\n *\n * @param params.transactionHash - The hash of the transaction to wait for.\n * @param params.walletAccount - The Tempo wallet account that sent it.\n * @param client - The Dynamic client instance.\n * @returns Nothing. Resolves once the transaction receipt is available.\n * @throws {InvalidParamError} If the wallet account is not a Tempo wallet account.\n * @example\n * ```ts\n * await tempoConfirmTransaction({ transactionHash, walletAccount }, client);\n * ```\n * @see tempoTransferAmount\n * @see getTempoPublicClient\n * @notInstrumented\n */\nexport const tempoConfirmTransaction = async (\n { transactionHash, walletAccount }: ConfirmTransactionParams,\n client: DynamicClient\n): Promise<void> => {\n if (!isTempoWalletAccount(walletAccount))\n throw new InvalidParamError('Wallet account is not a Tempo wallet account');\n\n const publicClient = await getTempoPublicClient({ walletAccount }, client);\n\n await publicClient.waitForTransactionReceipt({\n hash: transactionHash as `0x${string}`,\n });\n};\n","import { InvalidParamError } from '@dynamic-labs-sdk/client';\nimport type { TransferAmountParams } from '@dynamic-labs-sdk/client/core';\n\nimport { TempoNativeTokenError } from '../../errors/TempoNativeTokenError/TempoNativeTokenError';\nimport { isTempoWalletAccount } from '../../isTempoWalletAccount/isTempoWalletAccount';\nimport { sendTip20Transaction } from '../../sendTip20Transaction/sendTip20Transaction';\nimport type { CreateTempoViemWalletClient } from '../../TempoWalletProvider.types';\n\ntype TempoTransferAmountParams = TransferAmountParams & {\n createViemWalletClient: CreateTempoViemWalletClient;\n};\n\ntype TempoTransferAmountResult = { transactionHash: string };\n\n/**\n * Transfers a TIP-20 token from a Tempo wallet account. Tempo has no native\n * token, so the token is required.\n *\n * @param params.amount - Human-readable amount, e.g. '1.5'.\n * @param params.recipient - Recipient address.\n * @param params.token - The TIP-20 token to transfer.\n * @param params.walletAccount - The Tempo wallet account that sends.\n * @param params.createViemWalletClient - Creates the viem wallet client that signs.\n * @returns The transaction hash.\n * @throws {InvalidParamError} If the wallet account is not a Tempo wallet account.\n * @throws {TempoNativeTokenError} If no token is provided.\n * @example\n * ```ts\n * const { transactionHash } = await tempoTransferAmount({\n * amount: '1.5',\n * createViemWalletClient,\n * recipient: '0xRecipient',\n * token: { address: '0xTip20Token', decimals: 6 },\n * walletAccount,\n * });\n * ```\n * @see sendTip20Transaction\n * @see tempoConfirmTransaction\n * @notInstrumented\n */\nexport const tempoTransferAmount = async ({\n amount,\n createViemWalletClient,\n recipient,\n token,\n walletAccount,\n}: TempoTransferAmountParams): Promise<TempoTransferAmountResult> => {\n if (!isTempoWalletAccount(walletAccount))\n throw new InvalidParamError('Wallet account is not a Tempo wallet account');\n\n if (!token?.address) throw new TempoNativeTokenError();\n\n const walletClient = await createViemWalletClient({ walletAccount });\n\n const transactionHash = await sendTip20Transaction({\n amount,\n decimals: token.decimals,\n to: recipient,\n tokenAddress: token.address,\n walletClient,\n });\n\n return { transactionHash };\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\n/**\n * Thrown when a raw message passed to a Tempo embedded wallet is not valid\n * UTF-8 text. The embedded wallet signs text messages, so bytes that cannot be\n * decoded and re-encoded unchanged would be signed as different bytes.\n *\n * @example\n * ```ts\n * throw new TempoRawMessageNotUtf8Error();\n * ```\n *\n * @see createWalletProviderForWaasTempo\n */\nexport class TempoRawMessageNotUtf8Error extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'tempo_raw_message_not_utf8_error',\n docsUrl: null,\n name: 'TempoRawMessageNotUtf8Error',\n shortMessage:\n 'Raw messages must be valid UTF-8 text to be signed by a Tempo embedded wallet',\n });\n }\n}\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\n/**\n * Thrown when a Tempo transaction fails validation before signing, for\n * example because of a malformed address or non-hex call data.\n *\n * @example\n * ```ts\n * throw new TempoTransactionValidationError({ reason: 'malformed call data' });\n * ```\n *\n * @see createWalletProviderForWaasTempo\n * @see addWaasTempoExtension\n */\nexport class TempoTransactionValidationError extends BaseError {\n constructor({ reason }: { reason: string }) {\n super({\n cause: null,\n code: 'tempo_transaction_validation_error',\n docsUrl: null,\n name: 'TempoTransactionValidationError',\n shortMessage: `Invalid Tempo transaction: ${reason}`,\n });\n }\n}\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\n/**\n * Thrown when typed data is signed with a Tempo embedded wallet, which does\n * not support it yet.\n *\n * @example\n * ```ts\n * throw new TempoTypedDataNotSupportedError();\n * ```\n *\n * @see createWalletProviderForWaasTempo\n * @see addWaasTempoExtension\n */\nexport class TempoTypedDataNotSupportedError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'tempo_typed_data_not_supported',\n docsUrl: null,\n name: 'TempoTypedDataNotSupportedError',\n shortMessage:\n 'Signing typed data is not supported for Tempo embedded wallets yet',\n });\n }\n}\n","// jsdoc-completeness-disable @see\nimport { isAddress, isHex } from 'viem';\n\nimport { TempoTransactionValidationError } from '../../../errors/TempoTransactionValidationError';\nimport type { TempoTransactionCall } from '../serializeTempoTransactionForWaas';\n\n/**\n * Rejects malformed calls before they reach the signer, which would otherwise\n * fail with an opaque parsing error.\n *\n * @param params.calls - The Tempo calls to validate.\n * @returns Nothing. Throws on malformed input.\n * @throws {TempoTransactionValidationError} If a call is malformed or the batch is empty.\n * @example\n * ```ts\n * assertValidTempoTransactionCalls({ calls: [{ to, data, value }] });\n * ```\n * @notInstrumented\n */\nexport const assertValidTempoTransactionCalls = ({\n calls,\n}: {\n calls: readonly TempoTransactionCall[];\n}): void => {\n if (calls.length === 0)\n throw new TempoTransactionValidationError({\n reason: 'at least one call is required',\n });\n\n for (const call of calls) {\n if (call.to !== undefined && !isAddress(call.to))\n throw new TempoTransactionValidationError({\n reason: 'malformed call address',\n });\n if (call.data !== undefined && !isHex(call.data))\n throw new TempoTransactionValidationError({\n reason: 'malformed call data',\n });\n if (call.value !== undefined && typeof call.value !== 'bigint')\n throw new TempoTransactionValidationError({\n reason: 'malformed call value',\n });\n }\n};\n","// jsdoc-completeness-disable @see\nimport { isAddress } from 'viem';\nimport type { Hex, TransactionSerializable } from 'viem';\n\nimport { TempoTransactionValidationError } from '../../../errors/TempoTransactionValidationError';\nimport type { TempoTransactionCall } from '../serializeTempoTransactionForWaas';\n\n/**\n * A Tempo transaction request. Extends the standard viem transaction with the\n * Tempo fields: batched `calls`, `feeToken`, `nonceKey` (2D nonce) and\n * `validAfter` / `validBefore` expirations.\n *\n * @example\n * ```ts\n * const transaction: TempoTransactionRequest = {\n * calls: [{ to: '0xabc', data: '0xa9059cbb' }],\n * feeToken: '0xdef',\n * };\n * ```\n */\nexport type TempoTransactionRequest = TransactionSerializable & {\n calls?: readonly TempoTransactionCall[];\n feeToken?: Hex;\n nonceKey?: bigint;\n validAfter?: number;\n validBefore?: number;\n};\n\n/**\n * Rejects malformed Tempo transaction fields before they reach the signer,\n * which would otherwise fail with an opaque parsing error.\n *\n * @param params.transaction - The Tempo transaction request to validate.\n * @param params.chainId - The chain id of the active Tempo network.\n * @returns Nothing. Throws on malformed input.\n * @throws {TempoTransactionValidationError} If a field is malformed or inconsistent.\n * @example\n * ```ts\n * assertValidTempoTransactionRequest({ transaction, chainId: 4217 });\n * ```\n * @notInstrumented\n */\nexport const assertValidTempoTransactionRequest = ({\n transaction,\n chainId,\n}: {\n chainId: number;\n transaction: TempoTransactionRequest;\n}): void => {\n if (transaction.feeToken !== undefined && !isAddress(transaction.feeToken))\n throw new TempoTransactionValidationError({\n reason: 'malformed feeToken address',\n });\n\n if (\n transaction.calls !== undefined &&\n (transaction.to !== undefined ||\n transaction.data !== undefined ||\n transaction.value !== undefined)\n )\n throw new TempoTransactionValidationError({\n reason: 'calls cannot be combined with top-level to, data or value',\n });\n\n if (transaction.chainId !== undefined && transaction.chainId !== chainId)\n throw new TempoTransactionValidationError({\n reason: 'chainId does not match the active Tempo network',\n });\n\n if (\n transaction.nonceKey !== undefined &&\n (typeof transaction.nonceKey !== 'bigint' || transaction.nonceKey < 0n)\n )\n throw new TempoTransactionValidationError({\n reason: 'nonceKey must be a non-negative bigint',\n });\n\n for (const field of ['validAfter', 'validBefore'] as const) {\n const value = transaction[field];\n\n if (value !== undefined && (!Number.isInteger(value) || value < 0))\n throw new TempoTransactionValidationError({\n reason: `${field} must be a non-negative integer timestamp`,\n });\n }\n\n if (\n transaction.validAfter !== undefined &&\n transaction.validBefore !== undefined &&\n transaction.validAfter >= transaction.validBefore\n )\n throw new TempoTransactionValidationError({\n reason: 'validAfter must be before validBefore',\n });\n};\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\ntype BusinessAccountWalletAccount = WalletAccount & {\n businessAccountId: string;\n};\n\n/**\n * Type guard — returns true if the wallet account belongs to a business\n * account, meaning its signatures need a signing-quorum approval.\n *\n * @param walletAccount - The wallet account to check.\n * @returns Whether the wallet account has a business account id.\n * @example\n * ```ts\n * if (isBusinessAccountWalletAccount(walletAccount)) {\n * console.log(walletAccount.businessAccountId);\n * }\n * ```\n * @see signMessage\n * @see signRawMessage\n * @notInstrumented\n */\nexport const isBusinessAccountWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is BusinessAccountWalletAccount =>\n 'businessAccountId' in walletAccount &&\n typeof walletAccount.businessAccountId === 'string' &&\n walletAccount.businessAccountId !== '';\n","import type { Hex } from 'viem';\n\n/**\n * A single call inside a Tempo transaction.\n *\n * @example\n * ```ts\n * const call: TempoTransactionCall = { data: '0xa9059cbb', to: '0xabc' };\n * ```\n *\n * @see TempoTransactionRequest\n * @see sendTip20Transaction\n */\nexport type TempoTransactionCall = {\n data?: Hex;\n to?: Hex;\n value?: bigint;\n};\n\nexport type SerializeTempoTransactionForWaasParams = {\n /** Calls executed atomically by the transaction, one entry per batched call. */\n calls: readonly TempoTransactionCall[];\n chainId: number;\n /** TIP-20 token address used to pay the fee. */\n feeToken?: Hex;\n gas: bigint;\n maxFeePerGas: bigint;\n maxPriorityFeePerGas: bigint;\n nonce: number;\n /** 2D nonce key selecting the parallel nonce lane. */\n nonceKey?: bigint;\n /** Unix timestamp after which the transaction becomes valid. */\n validAfter?: number;\n /** Unix timestamp after which the transaction expires. */\n validBefore?: number;\n};\n\n/**\n * Serializes a Tempo transaction to the JSON an embedded wallet signs.\n * BigInt values are written as decimal strings because JSON has no BigInt type.\n *\n * @param params - The Tempo transaction fields to serialize.\n * @returns The JSON-encoded transaction.\n * @example\n * ```ts\n * const transaction = serializeTempoTransactionForWaas({\n * calls: [{ to: '0xabc', value: 1n }],\n * chainId: 4217,\n * gas: 300_000n,\n * maxFeePerGas: 1_000n,\n * maxPriorityFeePerGas: 100n,\n * nonce: 0,\n * });\n * ```\n * @see addWaasTempoExtension\n * @see createWalletProviderForWaasTempo\n * @notInstrumented\n */\nexport const serializeTempoTransactionForWaas = ({\n calls,\n chainId,\n feeToken,\n gas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceKey,\n validAfter,\n validBefore,\n}: SerializeTempoTransactionForWaasParams): string =>\n JSON.stringify(\n {\n calls: calls.map(({ data, to, value }) => ({ data, to, value })),\n chainId,\n feeToken,\n gas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceKey,\n validAfter,\n validBefore,\n },\n (_key, value: unknown) =>\n typeof value === 'bigint' ? value.toString() : value\n );\n","import {\n type DynamicClient,\n type WalletAccount,\n} from '@dynamic-labs-sdk/client';\nimport { prepareSigningQuorumApproval } from '@dynamic-labs-sdk/client/waas/core';\nimport type {\n ApprovalQuorumRequestContext,\n WaasProvider,\n} from '@dynamic-labs-sdk/client/waas/core';\n\nimport { TEMPO_CHAIN } from '../../../constants';\n\ntype SignMessageParams = {\n approvalQuorum?: ApprovalQuorumRequestContext;\n message: string;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\ntype SignMessageResult = { signature: string };\n\n/**\n * Signs a message with a Tempo embedded wallet account.\n *\n * For a business-account wallet, this first prepares and signs the quorum\n * intent for the message. Personal wallets pass `approvalQuorum` through\n * unchanged.\n *\n * @param params.approvalQuorum - A signed intent from an earlier `SigningConsentRequiredError`, when retrying.\n * @param params.message - The message to sign.\n * @param params.waasProvider - The WaaS provider that prepares the intent and signs.\n * @param params.walletAccount - The wallet account that signs the message.\n * @param client - The Dynamic client holding the current session key.\n * @returns The signature.\n * @example\n * ```ts\n * const { signature } = await signMessage(\n * { message, waasProvider, walletAccount },\n * client\n * );\n * ```\n * @see {@link prepareSigningQuorumApproval} for the quorum intent step.\n * @see {@link isSigningConsentRequiredError} for handling an unmet signing quorum.\n * @notInstrumented\n */\nexport const signMessage = async (\n { approvalQuorum, message, waasProvider, walletAccount }: SignMessageParams,\n client: DynamicClient\n): Promise<SignMessageResult> => {\n const preparedApprovalQuorum = await prepareSigningQuorumApproval(\n {\n approvalQuorum,\n chainName: TEMPO_CHAIN,\n operation: { kind: 'message', message },\n waasClient: await waasProvider.getWaasClient(),\n walletAccount,\n },\n client\n );\n\n return waasProvider.signMessage({\n approvalQuorum: preparedApprovalQuorum,\n message,\n walletAccount,\n });\n};\n","import {\n type DynamicClient,\n type WalletAccount,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport { assertDefined } from '@dynamic-labs-sdk/client/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\nimport type {\n Account,\n Chain,\n Hex,\n HttpTransportConfig,\n Transport,\n WalletClient,\n WalletClientConfig,\n} from 'viem';\nimport {\n bytesToHex,\n createPublicClient,\n createWalletClient,\n hexToString,\n http,\n isHex,\n stringToHex,\n} from 'viem';\nimport { toAccount } from 'viem/accounts';\n\nimport { TempoBusinessAccountTransactionNotSupportedError } from '../../../errors/TempoBusinessAccountTransactionNotSupportedError';\nimport { TempoRawMessageNotUtf8Error } from '../../../errors/TempoRawMessageNotUtf8Error';\nimport { TempoTransactionValidationError } from '../../../errors/TempoTransactionValidationError';\nimport { TempoTypedDataNotSupportedError } from '../../../errors/TempoTypedDataNotSupportedError';\nimport { mapNetworkDataToViemChain } from '../../../utils/mapNetworkDataToViemChain';\nimport { assertValidTempoTransactionCalls } from '../assertValidTempoTransactionCalls';\nimport { assertValidTempoTransactionRequest } from '../assertValidTempoTransactionRequest';\nimport type { TempoTransactionRequest } from '../assertValidTempoTransactionRequest';\nimport { isBusinessAccountWalletAccount } from '../isBusinessAccountWalletAccount';\nimport type { TempoTransactionCall } from '../serializeTempoTransactionForWaas';\nimport { serializeTempoTransactionForWaas } from '../serializeTempoTransactionForWaas';\nimport { signMessage } from '../signMessage';\n\nconst TEMPO_GAS_BUFFER_NUMERATOR = 130n;\nconst TEMPO_GAS_BUFFER_DENOMINATOR = 100n;\nconst TEMPO_MIN_GAS = 300_000n;\n\n/**\n * Address of the Tempo nonce manager, which keeps one nonce counter per\n * account and nonce key.\n */\nconst TEMPO_NONCE_MANAGER_ADDRESS =\n '0x4e4F4E4345000000000000000000000000000000';\n\nconst TEMPO_NONCE_MANAGER_ABI = [\n {\n inputs: [\n { name: 'account', type: 'address' },\n { name: 'nonceKey', type: 'uint256' },\n ],\n name: 'getNonce',\n outputs: [{ name: 'nonce', type: 'uint64' }],\n stateMutability: 'view',\n type: 'function',\n },\n] as const;\n\ntype CreateViemWalletClientForWaasTempoParams = {\n httpTransportConfig?: HttpTransportConfig;\n viemWalletClientConfig?: Omit<\n WalletClientConfig,\n 'account' | 'chain' | 'transport'\n >;\n waasProvider: WaasProvider;\n walletAccount: WalletAccount;\n};\n\n/**\n * Creates a viem wallet client for a Tempo embedded wallet account.\n *\n * Transactions are signed as Tempo transactions: batched `calls`, `feeToken`,\n * `nonceKey` and `validAfter` / `validBefore` pass through to the signer. Gas\n * is the larger of the caller's value and a 30% buffered estimate with a 300k\n * floor, fees are at least the network gas price, and the nonce is the next\n * one on the requested nonce lane.\n *\n * @param params.waasProvider - The embedded wallet provider that signs.\n * @param params.walletAccount - The Tempo embedded wallet account that signs.\n * @param [params.httpTransportConfig] - Optional viem HTTP transport config.\n * @param [params.viemWalletClientConfig] - Optional extra viem client config.\n * @param client - The Dynamic client instance.\n * @returns A viem wallet client bound to the Tempo account.\n * @throws If no active network data exists for the wallet account.\n * @example\n * ```ts\n * const walletClient = await createViemWalletClientForWaasTempo(\n * { waasProvider, walletAccount },\n * client\n * );\n *\n * const hash = await walletClient.sendTransaction({ to, data });\n * ```\n * @see serializeTempoTransactionForWaas\n * @see createWalletProviderForWaasTempo\n * @notInstrumented\n */\n// eslint-disable-next-line custom-rules/require-single-object-param\nexport const createViemWalletClientForWaasTempo = async (\n {\n waasProvider,\n walletAccount,\n httpTransportConfig,\n viemWalletClientConfig,\n }: CreateViemWalletClientForWaasTempoParams,\n dynamicClient: DynamicClient\n): Promise<WalletClient<Transport, Chain, Account>> => {\n const { networkData: activeNetworkData } = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n\n assertDefined(\n activeNetworkData,\n 'No active network data found for the provided wallet account'\n );\n\n const chain = mapNetworkDataToViemChain(activeNetworkData);\n const transport = http(\n activeNetworkData.rpcUrls.http[0],\n httpTransportConfig\n );\n const publicClient = createPublicClient({ chain, transport });\n\n const estimateTempoGas = async ({\n calls,\n hasExplicitGas,\n }: {\n calls: readonly TempoTransactionCall[];\n hasExplicitGas: boolean;\n }): Promise<bigint> => {\n const estimates = await Promise.all(\n calls.map(async (call) => {\n try {\n return await publicClient.estimateGas({\n account: walletAccount.address as Hex,\n data: call.data,\n to: call.to,\n value: call.value,\n });\n } catch (error) {\n if (calls.length === 1 && !hasExplicitGas) throw error;\n\n return TEMPO_MIN_GAS;\n }\n })\n );\n\n const estimate = estimates.reduce((total, value) => total + value, 0n);\n const buffered =\n (estimate * TEMPO_GAS_BUFFER_NUMERATOR) / TEMPO_GAS_BUFFER_DENOMINATOR;\n\n return buffered > TEMPO_MIN_GAS ? buffered : TEMPO_MIN_GAS;\n };\n\n const getTempoNonce = async ({\n nonceKey,\n }: {\n nonceKey?: bigint;\n }): Promise<number> => {\n if (nonceKey === undefined || nonceKey === 0n)\n return publicClient.getTransactionCount({\n address: walletAccount.address as Hex,\n });\n\n return Number(\n await publicClient.readContract({\n abi: TEMPO_NONCE_MANAGER_ABI,\n address: TEMPO_NONCE_MANAGER_ADDRESS,\n args: [walletAccount.address as Hex, nonceKey],\n functionName: 'getNonce',\n })\n );\n };\n\n return createWalletClient({\n account: toAccount({\n address: walletAccount.address as Hex,\n signMessage: async ({ message }) => {\n let signableMessage: string;\n\n if (typeof message === 'string') signableMessage = message;\n else {\n const raw = isHex(message.raw)\n ? message.raw\n : bytesToHex(message.raw);\n\n signableMessage = hexToString(raw);\n\n if (stringToHex(signableMessage) !== raw.toLowerCase())\n throw new TempoRawMessageNotUtf8Error();\n }\n\n const { signature } = await signMessage(\n { message: signableMessage, waasProvider, walletAccount },\n dynamicClient\n );\n\n return signature as Hex;\n },\n signTransaction: async (\n transaction: TempoTransactionRequest\n ): Promise<Hex> => {\n if (isBusinessAccountWalletAccount(walletAccount))\n throw new TempoBusinessAccountTransactionNotSupportedError();\n\n assertValidTempoTransactionRequest({ chainId: chain.id, transaction });\n\n const calls: readonly TempoTransactionCall[] = transaction.calls ?? [\n {\n data: transaction.data ?? '0x',\n to: transaction.to ?? undefined,\n value: transaction.value ?? 0n,\n },\n ];\n\n assertValidTempoTransactionCalls({ calls });\n\n const estimatedGas = await estimateTempoGas({\n calls,\n hasExplicitGas: transaction.gas !== undefined,\n });\n const gas =\n transaction.gas !== undefined && transaction.gas > estimatedGas\n ? transaction.gas\n : estimatedGas;\n\n const nonce =\n transaction.nonceKey !== undefined && transaction.nonceKey !== 0n\n ? await getTempoNonce({ nonceKey: transaction.nonceKey })\n : transaction.nonce ??\n (await getTempoNonce({ nonceKey: transaction.nonceKey }));\n\n const gasPrice = await publicClient.getGasPrice();\n const priorityGasPrice = gasPrice / 10n;\n const requestedGasPrice =\n 'gasPrice' in transaction ? transaction.gasPrice : undefined;\n const requestedMaxFeePerGas =\n transaction.maxFeePerGas ?? requestedGasPrice;\n const requestedMaxPriorityFeePerGas =\n transaction.maxPriorityFeePerGas ?? requestedGasPrice;\n const maxFeePerGas =\n requestedMaxFeePerGas !== undefined &&\n requestedMaxFeePerGas > gasPrice\n ? requestedMaxFeePerGas\n : gasPrice;\n const maxPriorityFeePerGas =\n requestedMaxPriorityFeePerGas !== undefined &&\n requestedMaxPriorityFeePerGas > priorityGasPrice\n ? requestedMaxPriorityFeePerGas\n : priorityGasPrice;\n\n if (maxPriorityFeePerGas > maxFeePerGas)\n throw new TempoTransactionValidationError({\n reason: 'maxPriorityFeePerGas must not exceed maxFeePerGas',\n });\n\n const serializedTransaction = serializeTempoTransactionForWaas({\n calls,\n chainId: chain.id,\n feeToken: transaction.feeToken,\n gas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceKey: transaction.nonceKey,\n validAfter: transaction.validAfter,\n validBefore: transaction.validBefore,\n });\n\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction,\n walletAccount,\n });\n\n return signature as Hex;\n },\n signTypedData: () => {\n throw new TempoTypedDataNotSupportedError();\n },\n }),\n chain,\n transport,\n ...viemWalletClientConfig,\n });\n};\n","import {\n type DynamicClient,\n InvalidParamError,\n} from '@dynamic-labs-sdk/client';\nimport { prepareSigningQuorumApproval } from '@dynamic-labs-sdk/client/waas/core';\nimport type { WaasProvider } from '@dynamic-labs-sdk/client/waas/core';\n\nimport { TEMPO_CHAIN } from '../../../constants';\nimport { isBusinessAccountWalletAccount } from '../isBusinessAccountWalletAccount';\n\ntype SignRawMessageParams = Parameters<WaasProvider['signRawMessage']>[0] & {\n waasProvider: WaasProvider;\n};\n\ntype SignRawMessageResult = { signature: string };\n\n/**\n * Signs a raw message with a Tempo embedded wallet account.\n *\n * For a business-account wallet, `rawSign` is required: the quorum intent\n * commits to its preimage, so the intent can be checked before signing.\n *\n * @param params.approvalQuorum - A signed intent from an earlier `SigningConsentRequiredError`, when retrying.\n * @param params.message - The raw message to sign.\n * @param [params.password] - The wallet password, if the wallet is password protected.\n * @param [params.rawSign] - The hex preimage and hash metadata that the intent commits to.\n * @param params.waasProvider - The WaaS provider that prepares the intent and signs.\n * @param params.walletAccount - The wallet account that signs the message.\n * @param client - The Dynamic client holding the current session key.\n * @returns The signature.\n * @throws {InvalidParamError} If a business-account wallet has no `rawSign`.\n * @example\n * ```ts\n * const { signature } = await signRawMessage(\n * { message, rawSign, waasProvider, walletAccount },\n * client\n * );\n * ```\n * @see {@link prepareSigningQuorumApproval} for the quorum intent step.\n * @see {@link isSigningConsentRequiredError} for handling an unmet signing quorum.\n * @notInstrumented\n */\nexport const signRawMessage = async (\n {\n approvalQuorum,\n message,\n password,\n rawSign,\n waasProvider,\n walletAccount,\n }: SignRawMessageParams,\n client: DynamicClient\n): Promise<SignRawMessageResult> => {\n if (isBusinessAccountWalletAccount(walletAccount) && !rawSign)\n throw new InvalidParamError(\n 'Raw signing for a business-account wallet requires a verifiable preimage'\n );\n\n const preparedApprovalQuorum = rawSign\n ? await prepareSigningQuorumApproval(\n {\n approvalQuorum,\n chainName: TEMPO_CHAIN,\n operation: { kind: 'raw', message, rawSign },\n waasClient: await waasProvider.getWaasClient(),\n walletAccount,\n },\n client\n )\n : approvalQuorum;\n\n return waasProvider.signRawMessage({\n approvalQuorum: preparedApprovalQuorum,\n message,\n password,\n rawSign,\n walletAccount,\n });\n};\n","import { type DynamicClient } from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport { TEMPO_CHAIN } from '../../../constants';\nimport { InvalidTempoNetworkError } from '../../../errors/InvalidTempoNetworkError';\nimport { TempoBusinessAccountTransactionNotSupportedError } from '../../../errors/TempoBusinessAccountTransactionNotSupportedError';\nimport { isTempoChainId } from '../../../utils/tempoChainIds/tempoChainIds';\nimport { tempoConfirmTransaction } from '../../../utils/tempoConfirmTransaction';\nimport { tempoTransferAmount } from '../../../utils/tempoTransferAmount';\nimport type { WaasTempoWalletProvider } from '../../WaasTempoWalletProvider.types';\nimport { createViemWalletClientForWaasTempo } from '../createViemWalletClientForWaasTempo';\nimport { isBusinessAccountWalletAccount } from '../isBusinessAccountWalletAccount';\nimport { signMessage as signWaasMessage } from '../signMessage';\nimport { signRawMessage as signWaasRawMessage } from '../signRawMessage';\n\ntype CreateWalletProviderForWaasTempoParams = {\n dynamicClient: DynamicClient;\n};\n\n/**\n * Creates the embedded wallet provider for the Tempo chain.\n *\n * @param params.dynamicClient - The Dynamic client the provider is bound to.\n * @returns A wallet provider that signs with Tempo embedded wallets.\n * @throws {InvalidTempoNetworkError} When the returned provider is asked to switch to a network that is not a Tempo network.\n * @throws {TempoBusinessAccountTransactionNotSupportedError} When the returned provider is asked to sign a transaction with a business-account wallet.\n * @example\n * ```ts\n * const walletProvider = createWalletProviderForWaasTempo({ dynamicClient });\n * ```\n * @see addWaasTempoExtension\n * @see WaasTempoWalletProvider\n * @notInstrumented\n */\nexport const createWalletProviderForWaasTempo = ({\n dynamicClient,\n}: CreateWalletProviderForWaasTempoParams): WaasTempoWalletProvider => {\n const chain = TEMPO_CHAIN;\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({\n chain,\n sdkClient: dynamicClient,\n });\n\n const createViemWalletClient: WaasTempoWalletProvider['createViemWalletClient'] =\n async ({ walletAccount, httpTransportConfig, viemWalletClientConfig }) =>\n createViemWalletClientForWaasTempo(\n {\n httpTransportConfig,\n viemWalletClientConfig,\n waasProvider,\n walletAccount,\n },\n dynamicClient\n );\n\n const getActiveNetworkId: WaasTempoWalletProvider['getActiveNetworkId'] =\n () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasTempoWalletProvider['getConnectedAddresses'] =\n () =>\n Promise.resolve({\n addresses: getAllUserWaasAddressesForChain({ chain }, dynamicClient),\n });\n\n const signMessage: WaasTempoWalletProvider['signMessage'] = async ({\n approvalQuorum,\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return signWaasMessage(\n { approvalQuorum, message, waasProvider, walletAccount },\n dynamicClient\n );\n };\n\n const signRawMessage: WaasTempoWalletProvider['signRawMessage'] = async (\n args\n ) => signWaasRawMessage({ ...args, waasProvider }, dynamicClient);\n\n const signSerializedTransaction: WaasTempoWalletProvider['signSerializedTransaction'] =\n async (args) => {\n if (isBusinessAccountWalletAccount(args.walletAccount))\n throw new TempoBusinessAccountTransactionNotSupportedError();\n\n return await waasProvider.signSerializedTransaction(args);\n };\n\n const switchActiveNetwork: WaasTempoWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n if (!isTempoChainId(networkId))\n throw new InvalidTempoNetworkError({ networkId });\n\n await switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n };\n\n const destroy: WaasTempoWalletProvider['destroy'] = (args) =>\n waasProvider.destroy(args);\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => tempoConfirmTransaction(args, dynamicClient),\n createViemWalletClient,\n destroy,\n getActiveNetworkId,\n getConnectedAddresses,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signMessage,\n signRawMessage,\n signSerializedTransaction,\n supportsFeeTokenSelection: true,\n switchActiveNetwork,\n transferAmount: (args) =>\n tempoTransferAmount({ ...args, createViemWalletClient }),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerTempoNetworkProviderBuilder } from '../../registerTempoNetworkProviderBuilder/registerTempoNetworkProviderBuilder';\nimport { createWalletProviderForWaasTempo } from '../utils/createWalletProviderForWaasTempo';\n\n/** Registry key for the Tempo embedded wallet extension registered by addWaasTempoExtension. */\nexport const WAAS_TEMPO_EXTENSION_KEY = 'waasTempo';\n\n/**\n * Registers Tempo embedded wallet support with the Dynamic client: the Tempo\n * network provider and the embedded wallet provider for Tempo.\n * Calling it more than once is safe: later calls do nothing.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple clients.\n * @returns Nothing. The extension is registered on the client.\n * @example\n * ```ts\n * import { addWaasTempoExtension } from '@dynamic-labs-sdk/tempo/waas';\n *\n * addWaasTempoExtension(dynamicClient);\n * ```\n * @see addTempoExtension\n * @see isTempoWalletAccount\n * @notInstrumented\n */\nexport const addWaasTempoExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_TEMPO_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_TEMPO_EXTENSION_KEY }, client);\n registerTempoNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasTempo({\n dynamicClient: client,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { sendTempoTransaction } from '../waas/sendTempoTransaction/sendTempoTransaction';\nexport { addWaasTempoExtension } from '../waas/addWaasTempoExtension/addWaasTempoExtension';\nexport { InvalidTempoNetworkError } from '../errors/InvalidTempoNetworkError';\nexport { TempoTransactionValidationError } from '../errors/TempoTransactionValidationError';\nexport { TempoTypedDataNotSupportedError } from '../errors/TempoTypedDataNotSupportedError';\nexport type { TempoTransactionRequest } from '../waas/utils/assertValidTempoTransactionRequest';\nexport type { TempoTransactionCall } from '../waas/utils/serializeTempoTransactionForWaas';\nexport type { WaasTempoWalletProvider } from '../waas/WaasTempoWalletProvider.types';\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1 +1,46 @@
1
- { "name": "@dynamic-labs-sdk/tempo", "version": "0.0.0" }
1
+ {
2
+ "name": "@dynamic-labs-sdk/tempo",
3
+ "version": "1.41.0",
4
+ "type": "module",
5
+ "main": "./dist/index.cjs",
6
+ "module": "./dist/index.esm.js",
7
+ "types": "./dist/exports/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ "./package.json": "./package.json",
13
+ ".": {
14
+ "types": "./dist/exports/index.d.ts",
15
+ "import": "./dist/index.esm.js",
16
+ "default": "./dist/index.cjs"
17
+ },
18
+ "./waas": {
19
+ "types": "./dist/exports/waas.d.ts",
20
+ "import": "./dist/waas.esm.js",
21
+ "default": "./dist/waas.cjs"
22
+ }
23
+ },
24
+ "dependencies": {
25
+ "@dynamic-labs/sdk-api-core": "0.104.0",
26
+ "@dynamic-labs-sdk/client": "1.41.0",
27
+ "@dynamic-labs-sdk/assert-package-version": "1.41.0"
28
+ },
29
+ "peerDependencies": {
30
+ "viem": "^2.28.4"
31
+ },
32
+ "devDependencies": {
33
+ "eventemitter3": "5.0.1",
34
+ "viem": "^2.28.4",
35
+ "vitest": "4.1.6"
36
+ },
37
+ "scripts": {
38
+ "build": "rm -rf dist && tsdown && pnpm exec tsc --emitDeclarationOnly -p ./tsconfig.lib.json",
39
+ "lint": "eslint .",
40
+ "lint:fix": "eslint . --fix",
41
+ "test": "vitest run",
42
+ "test:watch": "vitest",
43
+ "test-with-coverage": "vitest run --coverage",
44
+ "check-versions": "pnpm --filter @tools/sync-package-versions run sync --check-only --package-filter tempo"
45
+ }
46
+ }