@dynamic-labs-sdk/ton 1.18.0 → 1.19.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.
- package/dist/{addTonConnectExtension-Bbs7G_mc.cjs → addTonConnectExtension-BaTBqUGn.cjs} +2 -2
- package/dist/{addTonConnectExtension-Bbs7G_mc.cjs.map → addTonConnectExtension-BaTBqUGn.cjs.map} +1 -1
- package/dist/{addTonConnectExtension-CLavm4Do.esm.js → addTonConnectExtension-vitG3cpo.esm.js} +2 -2
- package/dist/{addTonConnectExtension-CLavm4Do.esm.js.map → addTonConnectExtension-vitG3cpo.esm.js.map} +1 -1
- package/dist/addTonExtension/addTonExtension.d.ts +9 -0
- package/dist/addTonExtension/addTonExtension.d.ts.map +1 -1
- package/dist/{addWaasTonExtension-Y2PCarL3.cjs → addWaasTonExtension-BJ69G2y4.cjs} +2 -2
- package/dist/{addWaasTonExtension-Y2PCarL3.cjs.map → addWaasTonExtension-BJ69G2y4.cjs.map} +1 -1
- package/dist/{addWaasTonExtension-DiWbUG14.esm.js → addWaasTonExtension-Bju5fVlY.esm.js} +2 -2
- package/dist/{addWaasTonExtension-DiWbUG14.esm.js.map → addWaasTonExtension-Bju5fVlY.esm.js.map} +1 -1
- package/dist/generateTonConnectProof/generateTonConnectProof.d.ts +15 -5
- package/dist/generateTonConnectProof/generateTonConnectProof.d.ts.map +1 -1
- package/dist/index.cjs +86 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +86 -20
- package/dist/index.esm.js.map +1 -1
- package/dist/isTonNetworkProvider/isTonNetworkProvider.d.ts +10 -1
- package/dist/isTonNetworkProvider/isTonNetworkProvider.d.ts.map +1 -1
- package/dist/isTonWalletAccount/isTonWalletAccount.d.ts +9 -1
- package/dist/isTonWalletAccount/isTonWalletAccount.d.ts.map +1 -1
- package/dist/isTonWalletProvider/isTonWalletProvider.d.ts +10 -1
- package/dist/isTonWalletProvider/isTonWalletProvider.d.ts.map +1 -1
- package/dist/sendJetton/sendJetton.d.ts +15 -5
- package/dist/sendJetton/sendJetton.d.ts.map +1 -1
- package/dist/sendTon/sendTon.d.ts +15 -5
- package/dist/sendTon/sendTon.d.ts.map +1 -1
- package/dist/sendTransaction/sendTransaction.d.ts +14 -4
- package/dist/sendTransaction/sendTransaction.d.ts.map +1 -1
- package/dist/tonConnect.cjs +2 -2
- package/dist/tonConnect.esm.js +2 -2
- package/dist/{tonTransferAmount-JgBt15EL.esm.js → tonTransferAmount-5Ltz1PnK.esm.js} +11 -2
- package/dist/{tonTransferAmount-JgBt15EL.esm.js.map → tonTransferAmount-5Ltz1PnK.esm.js.map} +1 -1
- package/dist/{tonTransferAmount-MF75NsQx.cjs → tonTransferAmount-ROBOHZEu.cjs} +11 -2
- package/dist/{tonTransferAmount-MF75NsQx.cjs.map → tonTransferAmount-ROBOHZEu.cjs.map} +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/waas.cjs +2 -2
- package/dist/waas.esm.js +2 -2
- package/package.json +13 -6
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["isTonWalletProvider","NotTonProviderError","MethodNotImplementedError","isTonWalletProvider","NotTonProviderError","isTonWalletProvider","NotTonProviderError","isTonWalletProvider","NotTonProviderError","packageName","packageVersion"],"sources":["../src/addTonExtension/addTonExtension.ts","../src/generateTonConnectProof/generateTonConnectProof.ts","../src/isTonNetworkProvider/isTonNetworkProvider.ts","../src/isTonWalletAccount/isTonWalletAccount.ts","../src/sendJetton/sendJetton.ts","../src/sendTon/sendTon.ts","../src/sendTransaction/sendTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport {\n type AddTonConnectExtensionParams,\n addTonConnectExtension,\n} from '../tonConnect/addTonConnectExtension';\nimport { addWaasTonExtension } from '../waas/addWaasTonExtension';\n\nexport type AddTonExtensionParams = AddTonConnectExtensionParams;\n\n/**\n * Adds the TON extension to the Dynamic client.\n *\n * This is a convenience function that adds both the TonConnect extension\n * and the Dynamic WaaS TON extension, enabling support for all TON wallet types\n * including external wallets (Tonkeeper, MyTonWallet, etc.) and embedded wallets\n * managed by Dynamic's infrastructure.\n *\n * @param [params] - Optional configuration forwarded to the TonConnect extension.\n * @param [params.tonConnectUI] - An external TonConnectUI instance to reuse.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addTonExtension = (\n params: AddTonExtensionParams = {},\n client: DynamicClient = getDefaultClient(),\n): void => {\n addTonConnectExtension(params, client);\n addWaasTonExtension(client);\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport {\n MethodNotImplementedError,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { TonConnectProof } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype GenerateTonConnectProofParams = {\n payload: string;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Generates a TonConnect proof for a wallet account.\n *\n * @param params.payload - The proof payload (typically a nonce)\n * @param params.walletAccount - The wallet account to generate the proof for\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns The TonConnect proof containing address, domain, payload, signature, and timestamp\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider\n * @throws {MethodNotImplementedError} If the wallet provider does not support generateTonConnectProof\n * @notInstrumented\n */\nexport const generateTonConnectProof = async (\n { payload, walletAccount }: GenerateTonConnectProofParams,\n client = getDefaultClient()\n): Promise<TonConnectProof> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n if (!provider.generateTonConnectProof) {\n throw new MethodNotImplementedError('generateTonConnectProof');\n }\n\n return provider.generateTonConnectProof({ payload, walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { TonNetworkProvider } from '../TonNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a TON network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a TON network provider, false otherwise.\n * @notInstrumented\n */\nexport const isTonNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is TonNetworkProvider => networkProvider.chain === 'TON';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a TON wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a TON wallet account, false otherwise.\n * @notInstrumented\n */\nexport const isTonWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is TonWalletAccount => walletAccount.chain === 'TON';\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonJettonTransfer, TonSendTransactionResponse } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype SendJettonParams = {\n transaction: TonJettonTransfer;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a Jetton (TON token) transaction.\n *\n * @param params.transaction - The Jetton transaction to send\n * @param params.walletAccount - The wallet account to send the transaction from\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider\n * @notInstrumented\n */\nexport const sendJetton = async (\n { walletAccount, transaction }: SendJettonParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendJetton({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonNativeTransfer, TonSendTransactionResponse } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype SendTonParams = {\n transaction: TonNativeTransfer;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a native TON transaction.\n *\n * @param params.transaction - The native TON transaction to send\n * @param params.walletAccount - The wallet account to send the transaction from\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider\n * @notInstrumented\n */\nexport const sendTon = async (\n { walletAccount, transaction }: SendTonParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendTon({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\nimport type {\n TonSendTransactionRequest,\n TonSendTransactionResponse,\n} from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\n\ntype SendTransactionParams = {\n request: TonSendTransactionRequest;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a custom TON transaction with an arbitrary message payload.\n *\n * @param params.request - The raw TON transaction request (messages, validUntil, etc.)\n * @param params.walletAccount - The wallet account to send the transaction from\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider\n * @notInstrumented\n */\nexport const sendTransaction = async (\n { request, walletAccount }: SendTransactionParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendTransaction({ request, walletAccount });\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';\n\nassertPackageVersion(packageName, packageVersion);\n\nexport {\n type AddTonExtensionParams,\n addTonExtension,\n} from '../addTonExtension';\nexport { NotTonProviderError } from '../errors/NotTonProviderError';\nexport { TransactionExecutionFailedError } from '../errors/TransactionExecutionFailedError';\nexport { generateTonConnectProof } from '../generateTonConnectProof';\nexport { isTonNetworkProvider } from '../isTonNetworkProvider';\nexport { isTonWalletAccount } from '../isTonWalletAccount';\nexport { isTonWalletProvider } from '../isTonWalletProvider';\nexport { sendJetton } from '../sendJetton';\nexport { sendTon } from '../sendTon';\nexport { sendTransaction } from '../sendTransaction';\nexport type {\n TonJettonTransfer,\n TonNativeTransfer,\n TonConnectProof,\n TonSendTransactionRequest,\n TonSendTransactionResponse,\n} from '../ton.types';\nexport type { TonNetworkProvider } from '../TonNetworkProvider.types';\nexport type { TonWalletAccount } from '../TonWalletAccount.types';\nexport type { TonWalletProvider } from '../TonWalletProvider.types';\nexport { NANOTON_PER_TON } from '../utils/constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,MAAa,mBACX,SAAgC,EAAE,EAClC,8DAA0C,KACjC;AACT,uDAAuB,QAAQ,OAAO;AACtC,iDAAoB,OAAO;;;;;;;;;;;;;;;;ACF7B,MAAa,0BAA0B,OACrC,EAAE,SAAS,iBACX,yDAA2B,KACE;CAC7B,MAAM,iFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAACA,8CAAoB,SAAS,CAChC,OAAM,IAAIC,8CAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,KAAI,CAAC,SAAS,wBACZ,OAAM,IAAIC,wDAA0B,0BAA0B;AAGhE,QAAO,SAAS,wBAAwB;EAAE;EAAS;EAAe,CAAC;;;;;;;;;;;;ACjCrE,MAAa,wBACX,oBAC0C,gBAAgB,UAAU;;;;;;;;;;;ACFtE,MAAa,sBACX,kBACsC,cAAc,UAAU;;;;;;;;;;;;;;ACUhE,MAAa,aAAa,OACxB,EAAE,eAAe,eACjB,yDAA2B,KACa;CACxC,MAAM,iFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAACC,8CAAoB,SAAS,CAChC,OAAM,IAAIC,8CAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,WAAW;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;;ACb5D,MAAa,UAAU,OACrB,EAAE,eAAe,eACjB,yDAA2B,KACa;CACxC,MAAM,iFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAACC,8CAAoB,SAAS,CAChC,OAAM,IAAIC,8CAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,QAAQ;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;;ACVzD,MAAa,kBAAkB,OAC7B,EAAE,SAAS,iBACX,yDAA2B,KACa;CACxC,MAAM,iFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAACC,8CAAoB,SAAS,CAChC,OAAM,IAAIC,8CAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,gBAAgB;EAAE;EAAS;EAAe,CAAC;;;;;mEChCxCC,gCAAaC,kCAAe"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["isTonWalletProvider","NotTonProviderError","MethodNotImplementedError","isTonWalletProvider","NotTonProviderError","isTonWalletProvider","NotTonProviderError","isTonWalletProvider","NotTonProviderError","packageName","packageVersion"],"sources":["../src/addTonExtension/addTonExtension.ts","../src/generateTonConnectProof/generateTonConnectProof.ts","../src/isTonNetworkProvider/isTonNetworkProvider.ts","../src/isTonWalletAccount/isTonWalletAccount.ts","../src/sendJetton/sendJetton.ts","../src/sendTon/sendTon.ts","../src/sendTransaction/sendTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport {\n type AddTonConnectExtensionParams,\n addTonConnectExtension,\n} from '../tonConnect/addTonConnectExtension';\nimport { addWaasTonExtension } from '../waas/addWaasTonExtension';\n\nexport type AddTonExtensionParams = AddTonConnectExtensionParams;\n\n/**\n * Adds the TON extension to the Dynamic client.\n *\n * This is a convenience function that adds both the TonConnect extension\n * and the Dynamic WaaS TON extension, enabling support for all TON wallet types\n * including external wallets (Tonkeeper, MyTonWallet, etc.) and embedded wallets\n * managed by Dynamic's infrastructure.\n *\n * @example\n * ```ts\n * const client = createDynamicClient({ environmentId: 'env-123' });\n * addTonExtension({}, client);\n * ```\n *\n * @param [params] - Optional configuration forwarded to the TonConnect extension.\n * @param [params.tonConnectUI] - An external TonConnectUI instance to reuse.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns void\n * @see isTonWalletAccount\n * @see isTonNetworkProvider\n * @notInstrumented\n */\nexport const addTonExtension = (\n params: AddTonExtensionParams = {},\n client: DynamicClient = getDefaultClient(),\n): void => {\n addTonConnectExtension(params, client);\n addWaasTonExtension(client);\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport {\n MethodNotImplementedError,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { TonConnectProof } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype GenerateTonConnectProofParams = {\n payload: string;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Generates a TonConnect proof for a wallet account.\n *\n * @example\n * ```ts\n * const proof = await generateTonConnectProof({\n * walletAccount: tonAccount,\n * payload: 'nonce-abc123',\n * });\n * ```\n *\n * @param params.payload - The proof payload (typically a nonce).\n * @param params.walletAccount - The wallet account to generate the proof for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns The TonConnect proof containing address, domain, payload, signature, and timestamp.\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.\n * @throws {MethodNotImplementedError} If the wallet provider does not support generateTonConnectProof.\n * @see isTonWalletAccount\n * @see sendTransaction\n * @notInstrumented\n */\nexport const generateTonConnectProof = async (\n { payload, walletAccount }: GenerateTonConnectProofParams,\n client = getDefaultClient()\n): Promise<TonConnectProof> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n if (!provider.generateTonConnectProof) {\n throw new MethodNotImplementedError('generateTonConnectProof');\n }\n\n return provider.generateTonConnectProof({ payload, walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { TonNetworkProvider } from '../TonNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a TON network provider.\n *\n * @example\n * ```ts\n * if (isTonNetworkProvider(networkProvider)) {\n * const tonClient = networkProvider.getTonClient();\n * }\n * ```\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a TON network provider, false otherwise.\n * @see isTonWalletAccount\n * @see addTonExtension\n * @notInstrumented\n */\nexport const isTonNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is TonNetworkProvider => networkProvider.chain === 'TON';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a TON wallet account.\n *\n * @example\n * ```ts\n * const accounts = getWalletAccounts();\n * const tonAccounts = accounts.filter(isTonWalletAccount);\n * ```\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a TON wallet account, false otherwise.\n * @see isTonNetworkProvider\n * @see addTonExtension\n * @notInstrumented\n */\nexport const isTonWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is TonWalletAccount => walletAccount.chain === 'TON';\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonJettonTransfer, TonSendTransactionResponse } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype SendJettonParams = {\n transaction: TonJettonTransfer;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a Jetton (TON token) transaction.\n *\n * @example\n * ```ts\n * const { hash } = await sendJetton({\n * walletAccount: tonAccount,\n * transaction: jettonTransfer,\n * });\n * ```\n *\n * @param params.transaction - The Jetton transaction to send.\n * @param params.walletAccount - The wallet account to send the transaction from.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash.\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.\n * @see sendTon\n * @see sendTransaction\n * @notInstrumented\n */\nexport const sendJetton = async (\n { walletAccount, transaction }: SendJettonParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendJetton({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonNativeTransfer, TonSendTransactionResponse } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype SendTonParams = {\n transaction: TonNativeTransfer;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a native TON transaction.\n *\n * @example\n * ```ts\n * const { hash } = await sendTon({\n * walletAccount: tonAccount,\n * transaction: nativeTransfer,\n * });\n * ```\n *\n * @param params.transaction - The native TON transaction to send.\n * @param params.walletAccount - The wallet account to send the transaction from.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash.\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.\n * @see sendJetton\n * @see sendTransaction\n * @notInstrumented\n */\nexport const sendTon = async (\n { walletAccount, transaction }: SendTonParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendTon({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\nimport type {\n TonSendTransactionRequest,\n TonSendTransactionResponse,\n} from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\n\ntype SendTransactionParams = {\n request: TonSendTransactionRequest;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a custom TON transaction with an arbitrary message payload.\n *\n * @example\n * ```ts\n * const { hash } = await sendTransaction({\n * walletAccount: tonAccount,\n * request: { messages: [{ address: 'EQ...', amount: '1000000000' }] },\n * });\n * ```\n *\n * @param params.request - The raw TON transaction request (messages, validUntil, etc.).\n * @param params.walletAccount - The wallet account to send the transaction from.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash.\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.\n * @see sendTon\n * @see sendJetton\n * @notInstrumented\n */\nexport const sendTransaction = async (\n { request, walletAccount }: SendTransactionParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendTransaction({ request, walletAccount });\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';\n\nassertPackageVersion(packageName, packageVersion);\n\nexport {\n type AddTonExtensionParams,\n addTonExtension,\n} from '../addTonExtension';\nexport { NotTonProviderError } from '../errors/NotTonProviderError';\nexport { TransactionExecutionFailedError } from '../errors/TransactionExecutionFailedError';\nexport { generateTonConnectProof } from '../generateTonConnectProof';\nexport { isTonNetworkProvider } from '../isTonNetworkProvider';\nexport { isTonWalletAccount } from '../isTonWalletAccount';\nexport { isTonWalletProvider } from '../isTonWalletProvider';\nexport { sendJetton } from '../sendJetton';\nexport { sendTon } from '../sendTon';\nexport { sendTransaction } from '../sendTransaction';\nexport type {\n TonJettonTransfer,\n TonNativeTransfer,\n TonConnectProof,\n TonSendTransactionRequest,\n TonSendTransactionResponse,\n} from '../ton.types';\nexport type { TonNetworkProvider } from '../TonNetworkProvider.types';\nexport type { TonWalletAccount } from '../TonWalletAccount.types';\nexport type { TonWalletProvider } from '../TonWalletProvider.types';\nexport { NANOTON_PER_TON } from '../utils/constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAa,mBACX,SAAgC,EAAE,EAClC,8DAA0C,KACjC;AACT,uDAAuB,QAAQ,OAAO;AACtC,iDAAoB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;ACD7B,MAAa,0BAA0B,OACrC,EAAE,SAAS,iBACX,yDAA2B,KACE;CAC7B,MAAM,iFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAACA,8CAAoB,SAAS,CAChC,OAAM,IAAIC,8CAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,KAAI,CAAC,SAAS,wBACZ,OAAM,IAAIC,wDAA0B,0BAA0B;AAGhE,QAAO,SAAS,wBAAwB;EAAE;EAAS;EAAe,CAAC;;;;;;;;;;;;;;;;;;;;;AClCrE,MAAa,wBACX,oBAC0C,gBAAgB,UAAU;;;;;;;;;;;;;;;;;;;ACHtE,MAAa,sBACX,kBACsC,cAAc,UAAU;;;;;;;;;;;;;;;;;;;;;;;;ACYhE,MAAa,aAAa,OACxB,EAAE,eAAe,eACjB,yDAA2B,KACa;CACxC,MAAM,iFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAACC,8CAAoB,SAAS,CAChC,OAAM,IAAIC,8CAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,WAAW;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACb5D,MAAa,UAAU,OACrB,EAAE,eAAe,eACjB,yDAA2B,KACa;CACxC,MAAM,iFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAACC,8CAAoB,SAAS,CAChC,OAAM,IAAIC,8CAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,QAAQ;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACVzD,MAAa,kBAAkB,OAC7B,EAAE,SAAS,iBACX,yDAA2B,KACa;CACxC,MAAM,iFACJ,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAACC,8CAAoB,SAAS,CAChC,OAAM,IAAIC,8CAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,gBAAgB;EAAE;EAAS;EAAe,CAAC;;;;;mEC1CxCC,gCAAaC,kCAAe"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as NANOTON_PER_TON, m as version, n as isTonWalletProvider, p as name, r as NotTonProviderError } from "./tonTransferAmount-
|
|
2
|
-
import { t as addTonConnectExtension } from "./addTonConnectExtension-
|
|
3
|
-
import { n as TransactionExecutionFailedError, t as addWaasTonExtension } from "./addWaasTonExtension-
|
|
1
|
+
import { c as NANOTON_PER_TON, m as version, n as isTonWalletProvider, p as name, r as NotTonProviderError } from "./tonTransferAmount-5Ltz1PnK.esm.js";
|
|
2
|
+
import { t as addTonConnectExtension } from "./addTonConnectExtension-vitG3cpo.esm.js";
|
|
3
|
+
import { n as TransactionExecutionFailedError, t as addWaasTonExtension } from "./addWaasTonExtension-Bju5fVlY.esm.js";
|
|
4
4
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
5
5
|
import { MethodNotImplementedError, getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
|
|
6
6
|
import { getDefaultClient as getDefaultClient$1 } from "@dynamic-labs-sdk/client";
|
|
@@ -14,9 +14,18 @@ import { getDefaultClient as getDefaultClient$1 } from "@dynamic-labs-sdk/client
|
|
|
14
14
|
* including external wallets (Tonkeeper, MyTonWallet, etc.) and embedded wallets
|
|
15
15
|
* managed by Dynamic's infrastructure.
|
|
16
16
|
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* const client = createDynamicClient({ environmentId: 'env-123' });
|
|
20
|
+
* addTonExtension({}, client);
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
17
23
|
* @param [params] - Optional configuration forwarded to the TonConnect extension.
|
|
18
24
|
* @param [params.tonConnectUI] - An external TonConnectUI instance to reuse.
|
|
19
25
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
26
|
+
* @returns void
|
|
27
|
+
* @see isTonWalletAccount
|
|
28
|
+
* @see isTonNetworkProvider
|
|
20
29
|
* @notInstrumented
|
|
21
30
|
*/
|
|
22
31
|
const addTonExtension = (params = {}, client = getDefaultClient()) => {
|
|
@@ -29,12 +38,22 @@ const addTonExtension = (params = {}, client = getDefaultClient()) => {
|
|
|
29
38
|
/**
|
|
30
39
|
* Generates a TonConnect proof for a wallet account.
|
|
31
40
|
*
|
|
32
|
-
* @
|
|
33
|
-
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* const proof = await generateTonConnectProof({
|
|
44
|
+
* walletAccount: tonAccount,
|
|
45
|
+
* payload: 'nonce-abc123',
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @param params.payload - The proof payload (typically a nonce).
|
|
50
|
+
* @param params.walletAccount - The wallet account to generate the proof for.
|
|
34
51
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
35
|
-
* @returns The TonConnect proof containing address, domain, payload, signature, and timestamp
|
|
36
|
-
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
37
|
-
* @throws {MethodNotImplementedError} If the wallet provider does not support generateTonConnectProof
|
|
52
|
+
* @returns The TonConnect proof containing address, domain, payload, signature, and timestamp.
|
|
53
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.
|
|
54
|
+
* @throws {MethodNotImplementedError} If the wallet provider does not support generateTonConnectProof.
|
|
55
|
+
* @see isTonWalletAccount
|
|
56
|
+
* @see sendTransaction
|
|
38
57
|
* @notInstrumented
|
|
39
58
|
*/
|
|
40
59
|
const generateTonConnectProof = async ({ payload, walletAccount }, client = getDefaultClient$1()) => {
|
|
@@ -52,8 +71,17 @@ const generateTonConnectProof = async ({ payload, walletAccount }, client = getD
|
|
|
52
71
|
/**
|
|
53
72
|
* Type guard function to check if a network provider is a TON network provider.
|
|
54
73
|
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* if (isTonNetworkProvider(networkProvider)) {
|
|
77
|
+
* const tonClient = networkProvider.getTonClient();
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
55
81
|
* @param networkProvider - The network provider to check.
|
|
56
82
|
* @returns True if the network provider is a TON network provider, false otherwise.
|
|
83
|
+
* @see isTonWalletAccount
|
|
84
|
+
* @see addTonExtension
|
|
57
85
|
* @notInstrumented
|
|
58
86
|
*/
|
|
59
87
|
const isTonNetworkProvider = (networkProvider) => networkProvider.chain === "TON";
|
|
@@ -63,8 +91,16 @@ const isTonNetworkProvider = (networkProvider) => networkProvider.chain === "TON
|
|
|
63
91
|
/**
|
|
64
92
|
* Type guard function to check if a wallet account is a TON wallet account.
|
|
65
93
|
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```ts
|
|
96
|
+
* const accounts = getWalletAccounts();
|
|
97
|
+
* const tonAccounts = accounts.filter(isTonWalletAccount);
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
66
100
|
* @param walletAccount - The wallet account to check.
|
|
67
101
|
* @returns True if the wallet account is a TON wallet account, false otherwise.
|
|
102
|
+
* @see isTonNetworkProvider
|
|
103
|
+
* @see addTonExtension
|
|
68
104
|
* @notInstrumented
|
|
69
105
|
*/
|
|
70
106
|
const isTonWalletAccount = (walletAccount) => walletAccount.chain === "TON";
|
|
@@ -74,11 +110,21 @@ const isTonWalletAccount = (walletAccount) => walletAccount.chain === "TON";
|
|
|
74
110
|
/**
|
|
75
111
|
* Sends a Jetton (TON token) transaction.
|
|
76
112
|
*
|
|
77
|
-
* @
|
|
78
|
-
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```ts
|
|
115
|
+
* const { hash } = await sendJetton({
|
|
116
|
+
* walletAccount: tonAccount,
|
|
117
|
+
* transaction: jettonTransfer,
|
|
118
|
+
* });
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* @param params.transaction - The Jetton transaction to send.
|
|
122
|
+
* @param params.walletAccount - The wallet account to send the transaction from.
|
|
79
123
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
80
|
-
* @returns An object containing the transaction hash
|
|
81
|
-
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
124
|
+
* @returns An object containing the transaction hash.
|
|
125
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.
|
|
126
|
+
* @see sendTon
|
|
127
|
+
* @see sendTransaction
|
|
82
128
|
* @notInstrumented
|
|
83
129
|
*/
|
|
84
130
|
const sendJetton = async ({ walletAccount, transaction }, client = getDefaultClient$1()) => {
|
|
@@ -95,11 +141,21 @@ const sendJetton = async ({ walletAccount, transaction }, client = getDefaultCli
|
|
|
95
141
|
/**
|
|
96
142
|
* Sends a native TON transaction.
|
|
97
143
|
*
|
|
98
|
-
* @
|
|
99
|
-
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```ts
|
|
146
|
+
* const { hash } = await sendTon({
|
|
147
|
+
* walletAccount: tonAccount,
|
|
148
|
+
* transaction: nativeTransfer,
|
|
149
|
+
* });
|
|
150
|
+
* ```
|
|
151
|
+
*
|
|
152
|
+
* @param params.transaction - The native TON transaction to send.
|
|
153
|
+
* @param params.walletAccount - The wallet account to send the transaction from.
|
|
100
154
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
101
|
-
* @returns An object containing the transaction hash
|
|
102
|
-
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
155
|
+
* @returns An object containing the transaction hash.
|
|
156
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.
|
|
157
|
+
* @see sendJetton
|
|
158
|
+
* @see sendTransaction
|
|
103
159
|
* @notInstrumented
|
|
104
160
|
*/
|
|
105
161
|
const sendTon = async ({ walletAccount, transaction }, client = getDefaultClient$1()) => {
|
|
@@ -116,11 +172,21 @@ const sendTon = async ({ walletAccount, transaction }, client = getDefaultClient
|
|
|
116
172
|
/**
|
|
117
173
|
* Sends a custom TON transaction with an arbitrary message payload.
|
|
118
174
|
*
|
|
119
|
-
* @
|
|
120
|
-
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```ts
|
|
177
|
+
* const { hash } = await sendTransaction({
|
|
178
|
+
* walletAccount: tonAccount,
|
|
179
|
+
* request: { messages: [{ address: 'EQ...', amount: '1000000000' }] },
|
|
180
|
+
* });
|
|
181
|
+
* ```
|
|
182
|
+
*
|
|
183
|
+
* @param params.request - The raw TON transaction request (messages, validUntil, etc.).
|
|
184
|
+
* @param params.walletAccount - The wallet account to send the transaction from.
|
|
121
185
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
122
|
-
* @returns An object containing the transaction hash
|
|
123
|
-
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
186
|
+
* @returns An object containing the transaction hash.
|
|
187
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.
|
|
188
|
+
* @see sendTon
|
|
189
|
+
* @see sendJetton
|
|
124
190
|
* @notInstrumented
|
|
125
191
|
*/
|
|
126
192
|
const sendTransaction = async ({ request, walletAccount }, client = getDefaultClient$1()) => {
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","names":["getDefaultClient","getDefaultClient","getDefaultClient","getDefaultClient","packageName","packageVersion"],"sources":["../src/addTonExtension/addTonExtension.ts","../src/generateTonConnectProof/generateTonConnectProof.ts","../src/isTonNetworkProvider/isTonNetworkProvider.ts","../src/isTonWalletAccount/isTonWalletAccount.ts","../src/sendJetton/sendJetton.ts","../src/sendTon/sendTon.ts","../src/sendTransaction/sendTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport {\n type AddTonConnectExtensionParams,\n addTonConnectExtension,\n} from '../tonConnect/addTonConnectExtension';\nimport { addWaasTonExtension } from '../waas/addWaasTonExtension';\n\nexport type AddTonExtensionParams = AddTonConnectExtensionParams;\n\n/**\n * Adds the TON extension to the Dynamic client.\n *\n * This is a convenience function that adds both the TonConnect extension\n * and the Dynamic WaaS TON extension, enabling support for all TON wallet types\n * including external wallets (Tonkeeper, MyTonWallet, etc.) and embedded wallets\n * managed by Dynamic's infrastructure.\n *\n * @param [params] - Optional configuration forwarded to the TonConnect extension.\n * @param [params.tonConnectUI] - An external TonConnectUI instance to reuse.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addTonExtension = (\n params: AddTonExtensionParams = {},\n client: DynamicClient = getDefaultClient(),\n): void => {\n addTonConnectExtension(params, client);\n addWaasTonExtension(client);\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport {\n MethodNotImplementedError,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { TonConnectProof } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype GenerateTonConnectProofParams = {\n payload: string;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Generates a TonConnect proof for a wallet account.\n *\n * @param params.payload - The proof payload (typically a nonce)\n * @param params.walletAccount - The wallet account to generate the proof for\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns The TonConnect proof containing address, domain, payload, signature, and timestamp\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider\n * @throws {MethodNotImplementedError} If the wallet provider does not support generateTonConnectProof\n * @notInstrumented\n */\nexport const generateTonConnectProof = async (\n { payload, walletAccount }: GenerateTonConnectProofParams,\n client = getDefaultClient()\n): Promise<TonConnectProof> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n if (!provider.generateTonConnectProof) {\n throw new MethodNotImplementedError('generateTonConnectProof');\n }\n\n return provider.generateTonConnectProof({ payload, walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { TonNetworkProvider } from '../TonNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a TON network provider.\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a TON network provider, false otherwise.\n * @notInstrumented\n */\nexport const isTonNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is TonNetworkProvider => networkProvider.chain === 'TON';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a TON wallet account.\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a TON wallet account, false otherwise.\n * @notInstrumented\n */\nexport const isTonWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is TonWalletAccount => walletAccount.chain === 'TON';\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonJettonTransfer, TonSendTransactionResponse } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype SendJettonParams = {\n transaction: TonJettonTransfer;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a Jetton (TON token) transaction.\n *\n * @param params.transaction - The Jetton transaction to send\n * @param params.walletAccount - The wallet account to send the transaction from\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider\n * @notInstrumented\n */\nexport const sendJetton = async (\n { walletAccount, transaction }: SendJettonParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendJetton({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonNativeTransfer, TonSendTransactionResponse } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype SendTonParams = {\n transaction: TonNativeTransfer;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a native TON transaction.\n *\n * @param params.transaction - The native TON transaction to send\n * @param params.walletAccount - The wallet account to send the transaction from\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider\n * @notInstrumented\n */\nexport const sendTon = async (\n { walletAccount, transaction }: SendTonParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendTon({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\nimport type {\n TonSendTransactionRequest,\n TonSendTransactionResponse,\n} from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\n\ntype SendTransactionParams = {\n request: TonSendTransactionRequest;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a custom TON transaction with an arbitrary message payload.\n *\n * @param params.request - The raw TON transaction request (messages, validUntil, etc.)\n * @param params.walletAccount - The wallet account to send the transaction from\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider\n * @notInstrumented\n */\nexport const sendTransaction = async (\n { request, walletAccount }: SendTransactionParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendTransaction({ request, walletAccount });\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';\n\nassertPackageVersion(packageName, packageVersion);\n\nexport {\n type AddTonExtensionParams,\n addTonExtension,\n} from '../addTonExtension';\nexport { NotTonProviderError } from '../errors/NotTonProviderError';\nexport { TransactionExecutionFailedError } from '../errors/TransactionExecutionFailedError';\nexport { generateTonConnectProof } from '../generateTonConnectProof';\nexport { isTonNetworkProvider } from '../isTonNetworkProvider';\nexport { isTonWalletAccount } from '../isTonWalletAccount';\nexport { isTonWalletProvider } from '../isTonWalletProvider';\nexport { sendJetton } from '../sendJetton';\nexport { sendTon } from '../sendTon';\nexport { sendTransaction } from '../sendTransaction';\nexport type {\n TonJettonTransfer,\n TonNativeTransfer,\n TonConnectProof,\n TonSendTransactionRequest,\n TonSendTransactionResponse,\n} from '../ton.types';\nexport type { TonNetworkProvider } from '../TonNetworkProvider.types';\nexport type { TonWalletAccount } from '../TonWalletAccount.types';\nexport type { TonWalletProvider } from '../TonWalletProvider.types';\nexport { NANOTON_PER_TON } from '../utils/constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,MAAa,mBACX,SAAgC,EAAE,EAClC,SAAwB,kBAAkB,KACjC;AACT,wBAAuB,QAAQ,OAAO;AACtC,qBAAoB,OAAO;;;;;;;;;;;;;;;;ACF7B,MAAa,0BAA0B,OACrC,EAAE,SAAS,iBACX,SAASA,oBAAkB,KACE;CAC7B,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,KAAI,CAAC,SAAS,wBACZ,OAAM,IAAI,0BAA0B,0BAA0B;AAGhE,QAAO,SAAS,wBAAwB;EAAE;EAAS;EAAe,CAAC;;;;;;;;;;;;ACjCrE,MAAa,wBACX,oBAC0C,gBAAgB,UAAU;;;;;;;;;;;ACFtE,MAAa,sBACX,kBACsC,cAAc,UAAU;;;;;;;;;;;;;;ACUhE,MAAa,aAAa,OACxB,EAAE,eAAe,eACjB,SAASC,oBAAkB,KACa;CACxC,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,WAAW;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;;ACb5D,MAAa,UAAU,OACrB,EAAE,eAAe,eACjB,SAASC,oBAAkB,KACa;CACxC,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,QAAQ;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;;ACVzD,MAAa,kBAAkB,OAC7B,EAAE,SAAS,iBACX,SAASC,oBAAkB,KACa;CACxC,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,gBAAgB;EAAE;EAAS;EAAe,CAAC;;;;;AChC7D,qBAAqBC,MAAaC,QAAe"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","names":["getDefaultClient","getDefaultClient","getDefaultClient","getDefaultClient","packageName","packageVersion"],"sources":["../src/addTonExtension/addTonExtension.ts","../src/generateTonConnectProof/generateTonConnectProof.ts","../src/isTonNetworkProvider/isTonNetworkProvider.ts","../src/isTonWalletAccount/isTonWalletAccount.ts","../src/sendJetton/sendJetton.ts","../src/sendTon/sendTon.ts","../src/sendTransaction/sendTransaction.ts","../src/exports/index.ts"],"sourcesContent":["import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport {\n type AddTonConnectExtensionParams,\n addTonConnectExtension,\n} from '../tonConnect/addTonConnectExtension';\nimport { addWaasTonExtension } from '../waas/addWaasTonExtension';\n\nexport type AddTonExtensionParams = AddTonConnectExtensionParams;\n\n/**\n * Adds the TON extension to the Dynamic client.\n *\n * This is a convenience function that adds both the TonConnect extension\n * and the Dynamic WaaS TON extension, enabling support for all TON wallet types\n * including external wallets (Tonkeeper, MyTonWallet, etc.) and embedded wallets\n * managed by Dynamic's infrastructure.\n *\n * @example\n * ```ts\n * const client = createDynamicClient({ environmentId: 'env-123' });\n * addTonExtension({}, client);\n * ```\n *\n * @param [params] - Optional configuration forwarded to the TonConnect extension.\n * @param [params.tonConnectUI] - An external TonConnectUI instance to reuse.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns void\n * @see isTonWalletAccount\n * @see isTonNetworkProvider\n * @notInstrumented\n */\nexport const addTonExtension = (\n params: AddTonExtensionParams = {},\n client: DynamicClient = getDefaultClient(),\n): void => {\n addTonConnectExtension(params, client);\n addWaasTonExtension(client);\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport {\n MethodNotImplementedError,\n getWalletProviderFromWalletAccount,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { TonConnectProof } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype GenerateTonConnectProofParams = {\n payload: string;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Generates a TonConnect proof for a wallet account.\n *\n * @example\n * ```ts\n * const proof = await generateTonConnectProof({\n * walletAccount: tonAccount,\n * payload: 'nonce-abc123',\n * });\n * ```\n *\n * @param params.payload - The proof payload (typically a nonce).\n * @param params.walletAccount - The wallet account to generate the proof for.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns The TonConnect proof containing address, domain, payload, signature, and timestamp.\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.\n * @throws {MethodNotImplementedError} If the wallet provider does not support generateTonConnectProof.\n * @see isTonWalletAccount\n * @see sendTransaction\n * @notInstrumented\n */\nexport const generateTonConnectProof = async (\n { payload, walletAccount }: GenerateTonConnectProofParams,\n client = getDefaultClient()\n): Promise<TonConnectProof> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n if (!provider.generateTonConnectProof) {\n throw new MethodNotImplementedError('generateTonConnectProof');\n }\n\n return provider.generateTonConnectProof({ payload, walletAccount });\n};\n","import type { NetworkProvider } from '@dynamic-labs-sdk/client';\n\nimport type { TonNetworkProvider } from '../TonNetworkProvider.types';\n\n/**\n * Type guard function to check if a network provider is a TON network provider.\n *\n * @example\n * ```ts\n * if (isTonNetworkProvider(networkProvider)) {\n * const tonClient = networkProvider.getTonClient();\n * }\n * ```\n *\n * @param networkProvider - The network provider to check.\n * @returns True if the network provider is a TON network provider, false otherwise.\n * @see isTonWalletAccount\n * @see addTonExtension\n * @notInstrumented\n */\nexport const isTonNetworkProvider = (\n networkProvider: NetworkProvider\n): networkProvider is TonNetworkProvider => networkProvider.chain === 'TON';\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a TON wallet account.\n *\n * @example\n * ```ts\n * const accounts = getWalletAccounts();\n * const tonAccounts = accounts.filter(isTonWalletAccount);\n * ```\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a TON wallet account, false otherwise.\n * @see isTonNetworkProvider\n * @see addTonExtension\n * @notInstrumented\n */\nexport const isTonWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is TonWalletAccount => walletAccount.chain === 'TON';\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonJettonTransfer, TonSendTransactionResponse } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype SendJettonParams = {\n transaction: TonJettonTransfer;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a Jetton (TON token) transaction.\n *\n * @example\n * ```ts\n * const { hash } = await sendJetton({\n * walletAccount: tonAccount,\n * transaction: jettonTransfer,\n * });\n * ```\n *\n * @param params.transaction - The Jetton transaction to send.\n * @param params.walletAccount - The wallet account to send the transaction from.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash.\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.\n * @see sendTon\n * @see sendTransaction\n * @notInstrumented\n */\nexport const sendJetton = async (\n { walletAccount, transaction }: SendJettonParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendJetton({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonNativeTransfer, TonSendTransactionResponse } from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\n\ntype SendTonParams = {\n transaction: TonNativeTransfer;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a native TON transaction.\n *\n * @example\n * ```ts\n * const { hash } = await sendTon({\n * walletAccount: tonAccount,\n * transaction: nativeTransfer,\n * });\n * ```\n *\n * @param params.transaction - The native TON transaction to send.\n * @param params.walletAccount - The wallet account to send the transaction from.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash.\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.\n * @see sendJetton\n * @see sendTransaction\n * @notInstrumented\n */\nexport const sendTon = async (\n { walletAccount, transaction }: SendTonParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendTon({ transaction, walletAccount });\n};\n","import { getDefaultClient } from '@dynamic-labs-sdk/client';\nimport { getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';\n\nimport { NotTonProviderError } from '../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../isTonWalletProvider';\nimport type {\n TonSendTransactionRequest,\n TonSendTransactionResponse,\n} from '../ton.types';\nimport type { TonWalletAccount } from '../TonWalletAccount.types';\n\ntype SendTransactionParams = {\n request: TonSendTransactionRequest;\n walletAccount: TonWalletAccount;\n};\n\n/**\n * Sends a custom TON transaction with an arbitrary message payload.\n *\n * @example\n * ```ts\n * const { hash } = await sendTransaction({\n * walletAccount: tonAccount,\n * request: { messages: [{ address: 'EQ...', amount: '1000000000' }] },\n * });\n * ```\n *\n * @param params.request - The raw TON transaction request (messages, validUntil, etc.).\n * @param params.walletAccount - The wallet account to send the transaction from.\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns An object containing the transaction hash.\n * @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.\n * @see sendTon\n * @see sendJetton\n * @notInstrumented\n */\nexport const sendTransaction = async (\n { request, walletAccount }: SendTransactionParams,\n client = getDefaultClient()\n): Promise<TonSendTransactionResponse> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n return provider.sendTransaction({ request, walletAccount });\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';\n\nassertPackageVersion(packageName, packageVersion);\n\nexport {\n type AddTonExtensionParams,\n addTonExtension,\n} from '../addTonExtension';\nexport { NotTonProviderError } from '../errors/NotTonProviderError';\nexport { TransactionExecutionFailedError } from '../errors/TransactionExecutionFailedError';\nexport { generateTonConnectProof } from '../generateTonConnectProof';\nexport { isTonNetworkProvider } from '../isTonNetworkProvider';\nexport { isTonWalletAccount } from '../isTonWalletAccount';\nexport { isTonWalletProvider } from '../isTonWalletProvider';\nexport { sendJetton } from '../sendJetton';\nexport { sendTon } from '../sendTon';\nexport { sendTransaction } from '../sendTransaction';\nexport type {\n TonJettonTransfer,\n TonNativeTransfer,\n TonConnectProof,\n TonSendTransactionRequest,\n TonSendTransactionResponse,\n} from '../ton.types';\nexport type { TonNetworkProvider } from '../TonNetworkProvider.types';\nexport type { TonWalletAccount } from '../TonWalletAccount.types';\nexport type { TonWalletProvider } from '../TonWalletProvider.types';\nexport { NANOTON_PER_TON } from '../utils/constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAa,mBACX,SAAgC,EAAE,EAClC,SAAwB,kBAAkB,KACjC;AACT,wBAAuB,QAAQ,OAAO;AACtC,qBAAoB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;ACD7B,MAAa,0BAA0B,OACrC,EAAE,SAAS,iBACX,SAASA,oBAAkB,KACE;CAC7B,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,KAAI,CAAC,SAAS,wBACZ,OAAM,IAAI,0BAA0B,0BAA0B;AAGhE,QAAO,SAAS,wBAAwB;EAAE;EAAS;EAAe,CAAC;;;;;;;;;;;;;;;;;;;;;AClCrE,MAAa,wBACX,oBAC0C,gBAAgB,UAAU;;;;;;;;;;;;;;;;;;;ACHtE,MAAa,sBACX,kBACsC,cAAc,UAAU;;;;;;;;;;;;;;;;;;;;;;;;ACYhE,MAAa,aAAa,OACxB,EAAE,eAAe,eACjB,SAASC,oBAAkB,KACa;CACxC,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,WAAW;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACb5D,MAAa,UAAU,OACrB,EAAE,eAAe,eACjB,SAASC,oBAAkB,KACa;CACxC,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,QAAQ;EAAE;EAAa;EAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACVzD,MAAa,kBAAkB,OAC7B,EAAE,SAAS,iBACX,SAASC,oBAAkB,KACa;CACxC,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,QAAO,SAAS,gBAAgB;EAAE;EAAS;EAAe,CAAC;;;;;AC1C7D,qBAAqBC,MAAaC,QAAe"}
|
|
@@ -3,9 +3,18 @@ import type { TonNetworkProvider } from '../TonNetworkProvider.types';
|
|
|
3
3
|
/**
|
|
4
4
|
* Type guard function to check if a network provider is a TON network provider.
|
|
5
5
|
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* if (isTonNetworkProvider(networkProvider)) {
|
|
9
|
+
* const tonClient = networkProvider.getTonClient();
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
6
13
|
* @param networkProvider - The network provider to check.
|
|
7
14
|
* @returns True if the network provider is a TON network provider, false otherwise.
|
|
8
|
-
|
|
15
|
+
* @see isTonWalletAccount
|
|
16
|
+
* @see addTonExtension
|
|
17
|
+
* @notInstrumented
|
|
9
18
|
*/
|
|
10
19
|
export declare const isTonNetworkProvider: (networkProvider: NetworkProvider) => networkProvider is TonNetworkProvider;
|
|
11
20
|
//# sourceMappingURL=isTonNetworkProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isTonNetworkProvider.d.ts","sourceRoot":"","sources":["../../src/isTonNetworkProvider/isTonNetworkProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE
|
|
1
|
+
{"version":3,"file":"isTonNetworkProvider.d.ts","sourceRoot":"","sources":["../../src/isTonNetworkProvider/isTonNetworkProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,oBACd,eAAe,KAC/B,eAAe,IAAI,kBAAqD,CAAC"}
|
|
@@ -3,9 +3,17 @@ import type { TonWalletAccount } from '../TonWalletAccount.types';
|
|
|
3
3
|
/**
|
|
4
4
|
* Type guard function to check if a wallet account is a TON wallet account.
|
|
5
5
|
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const accounts = getWalletAccounts();
|
|
9
|
+
* const tonAccounts = accounts.filter(isTonWalletAccount);
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
6
12
|
* @param walletAccount - The wallet account to check.
|
|
7
13
|
* @returns True if the wallet account is a TON wallet account, false otherwise.
|
|
8
|
-
|
|
14
|
+
* @see isTonNetworkProvider
|
|
15
|
+
* @see addTonExtension
|
|
16
|
+
* @notInstrumented
|
|
9
17
|
*/
|
|
10
18
|
export declare const isTonWalletAccount: (walletAccount: WalletAccount) => walletAccount is TonWalletAccount;
|
|
11
19
|
//# sourceMappingURL=isTonWalletAccount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isTonWalletAccount.d.ts","sourceRoot":"","sources":["../../src/isTonWalletAccount/isTonWalletAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"isTonWalletAccount.d.ts","sourceRoot":"","sources":["../../src/isTonWalletAccount/isTonWalletAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,kBACd,aAAa,KAC3B,aAAa,IAAI,gBAAiD,CAAC"}
|
|
@@ -3,9 +3,18 @@ import type { TonWalletProvider } from '../TonWalletProvider.types';
|
|
|
3
3
|
/**
|
|
4
4
|
* Type guard function to check if a wallet provider is a TON wallet provider.
|
|
5
5
|
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* if (isTonWalletProvider(provider)) {
|
|
9
|
+
* const tonConnectUI = provider.getTonConnectUI();
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
6
13
|
* @param provider - The wallet provider to check.
|
|
7
14
|
* @returns True if the wallet provider is a TON wallet provider, false otherwise.
|
|
8
|
-
|
|
15
|
+
* @see isTonWalletAccount
|
|
16
|
+
* @see addTonExtension
|
|
17
|
+
* @notInstrumented
|
|
9
18
|
*/
|
|
10
19
|
export declare const isTonWalletProvider: (provider: WalletProvider) => provider is TonWalletProvider;
|
|
11
20
|
//# sourceMappingURL=isTonWalletProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isTonWalletProvider.d.ts","sourceRoot":"","sources":["../../src/isTonWalletProvider/isTonWalletProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE
|
|
1
|
+
{"version":3,"file":"isTonWalletProvider.d.ts","sourceRoot":"","sources":["../../src/isTonWalletProvider/isTonWalletProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB,aACpB,cAAc,KACvB,QAAQ,IAAI,iBAA6C,CAAC"}
|
|
@@ -7,12 +7,22 @@ type SendJettonParams = {
|
|
|
7
7
|
/**
|
|
8
8
|
* Sends a Jetton (TON token) transaction.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
11
|
-
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const { hash } = await sendJetton({
|
|
13
|
+
* walletAccount: tonAccount,
|
|
14
|
+
* transaction: jettonTransfer,
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param params.transaction - The Jetton transaction to send.
|
|
19
|
+
* @param params.walletAccount - The wallet account to send the transaction from.
|
|
12
20
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
13
|
-
* @returns An object containing the transaction hash
|
|
14
|
-
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
15
|
-
|
|
21
|
+
* @returns An object containing the transaction hash.
|
|
22
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.
|
|
23
|
+
* @see sendTon
|
|
24
|
+
* @see sendTransaction
|
|
25
|
+
* @notInstrumented
|
|
16
26
|
*/
|
|
17
27
|
export declare const sendJetton: ({ walletAccount, transaction }: SendJettonParams, client?: import("@dynamic-labs-sdk/client").DynamicClient) => Promise<TonSendTransactionResponse>;
|
|
18
28
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendJetton.d.ts","sourceRoot":"","sources":["../../src/sendJetton/sendJetton.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"sendJetton.d.ts","sourceRoot":"","sources":["../../src/sendJetton/sendJetton.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,UAAU,mCACW,gBAAgB,gEAE/C,OAAO,CAAC,0BAA0B,CAWpC,CAAC"}
|
|
@@ -7,12 +7,22 @@ type SendTonParams = {
|
|
|
7
7
|
/**
|
|
8
8
|
* Sends a native TON transaction.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
11
|
-
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const { hash } = await sendTon({
|
|
13
|
+
* walletAccount: tonAccount,
|
|
14
|
+
* transaction: nativeTransfer,
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param params.transaction - The native TON transaction to send.
|
|
19
|
+
* @param params.walletAccount - The wallet account to send the transaction from.
|
|
12
20
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
13
|
-
* @returns An object containing the transaction hash
|
|
14
|
-
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
15
|
-
|
|
21
|
+
* @returns An object containing the transaction hash.
|
|
22
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.
|
|
23
|
+
* @see sendJetton
|
|
24
|
+
* @see sendTransaction
|
|
25
|
+
* @notInstrumented
|
|
16
26
|
*/
|
|
17
27
|
export declare const sendTon: ({ walletAccount, transaction }: SendTonParams, client?: import("@dynamic-labs-sdk/client").DynamicClient) => Promise<TonSendTransactionResponse>;
|
|
18
28
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendTon.d.ts","sourceRoot":"","sources":["../../src/sendTon/sendTon.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"sendTon.d.ts","sourceRoot":"","sources":["../../src/sendTon/sendTon.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,OAAO,mCACc,aAAa,gEAE5C,OAAO,CAAC,0BAA0B,CAWpC,CAAC"}
|
|
@@ -7,11 +7,21 @@ type SendTransactionParams = {
|
|
|
7
7
|
/**
|
|
8
8
|
* Sends a custom TON transaction with an arbitrary message payload.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
11
|
-
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const { hash } = await sendTransaction({
|
|
13
|
+
* walletAccount: tonAccount,
|
|
14
|
+
* request: { messages: [{ address: 'EQ...', amount: '1000000000' }] },
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param params.request - The raw TON transaction request (messages, validUntil, etc.).
|
|
19
|
+
* @param params.walletAccount - The wallet account to send the transaction from.
|
|
12
20
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
13
|
-
* @returns An object containing the transaction hash
|
|
14
|
-
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
21
|
+
* @returns An object containing the transaction hash.
|
|
22
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider.
|
|
23
|
+
* @see sendTon
|
|
24
|
+
* @see sendJetton
|
|
15
25
|
* @notInstrumented
|
|
16
26
|
*/
|
|
17
27
|
export declare const sendTransaction: ({ request, walletAccount }: SendTransactionParams, client?: import("@dynamic-labs-sdk/client").DynamicClient) => Promise<TonSendTransactionResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendTransaction.d.ts","sourceRoot":"","sources":["../../src/sendTransaction/sendTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,yBAAyB,CAAC;IACnC,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"sendTransaction.d.ts","sourceRoot":"","sources":["../../src/sendTransaction/sendTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,yBAAyB,CAAC;IACnC,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,eAAe,+BACE,qBAAqB,gEAEhD,OAAO,CAAC,0BAA0B,CAWpC,CAAC"}
|
package/dist/tonConnect.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_tonTransferAmount = require('./tonTransferAmount-
|
|
2
|
-
const require_addTonConnectExtension = require('./addTonConnectExtension-
|
|
1
|
+
const require_tonTransferAmount = require('./tonTransferAmount-ROBOHZEu.cjs');
|
|
2
|
+
const require_addTonConnectExtension = require('./addTonConnectExtension-BaTBqUGn.cjs');
|
|
3
3
|
let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
|
|
4
4
|
|
|
5
5
|
//#region src/exports/tonConnect.ts
|
package/dist/tonConnect.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { m as version, p as name } from "./tonTransferAmount-
|
|
2
|
-
import { t as addTonConnectExtension } from "./addTonConnectExtension-
|
|
1
|
+
import { m as version, p as name } from "./tonTransferAmount-5Ltz1PnK.esm.js";
|
|
2
|
+
import { t as addTonConnectExtension } from "./addTonConnectExtension-vitG3cpo.esm.js";
|
|
3
3
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
4
4
|
|
|
5
5
|
//#region src/exports/tonConnect.ts
|
|
@@ -5,7 +5,7 @@ import { CHAIN } from "@tonconnect/sdk";
|
|
|
5
5
|
|
|
6
6
|
//#region package.json
|
|
7
7
|
var name = "@dynamic-labs-sdk/ton";
|
|
8
|
-
var version = "1.
|
|
8
|
+
var version = "1.19.0";
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region src/utils/createTonClient/createTonClient.ts
|
|
@@ -157,8 +157,17 @@ var NotTonProviderError = class extends BaseError {
|
|
|
157
157
|
/**
|
|
158
158
|
* Type guard function to check if a wallet provider is a TON wallet provider.
|
|
159
159
|
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```ts
|
|
162
|
+
* if (isTonWalletProvider(provider)) {
|
|
163
|
+
* const tonConnectUI = provider.getTonConnectUI();
|
|
164
|
+
* }
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
160
167
|
* @param provider - The wallet provider to check.
|
|
161
168
|
* @returns True if the wallet provider is a TON wallet provider, false otherwise.
|
|
169
|
+
* @see isTonWalletAccount
|
|
170
|
+
* @see addTonExtension
|
|
162
171
|
* @notInstrumented
|
|
163
172
|
*/
|
|
164
173
|
const isTonWalletProvider = (provider) => provider.chain === "TON";
|
|
@@ -199,4 +208,4 @@ const tonTransferAmount = async ({ amount, recipient, token, walletAccount }, cl
|
|
|
199
208
|
|
|
200
209
|
//#endregion
|
|
201
210
|
export { prepareJettonTransfer as a, NANOTON_PER_TON as c, registerTonNetworkProviderBuilder as d, createTonClient as f, prepareTonNativeTransfer as i, TON_CONNECT_PREFIX as l, version as m, isTonWalletProvider as n, DEFAULT_JETTON_GAS as o, name as p, NotTonProviderError as r, DEFAULT_TIMEOUT as s, tonTransferAmount as t, TON_PROOF_PREFIX as u };
|
|
202
|
-
//# sourceMappingURL=tonTransferAmount-
|
|
211
|
+
//# sourceMappingURL=tonTransferAmount-5Ltz1PnK.esm.js.map
|
package/dist/{tonTransferAmount-JgBt15EL.esm.js.map → tonTransferAmount-5Ltz1PnK.esm.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tonTransferAmount-JgBt15EL.esm.js","names":["rawAmount"],"sources":["../package.json","../src/utils/createTonClient/createTonClient.ts","../src/utils/fetchTonBalance/fetchTonBalance.ts","../src/utils/createTonNetworkProvider/createTonNetworkProvider.ts","../src/registerTonNetworkProviderBuilder/registerTonNetworkProviderBuilder.ts","../src/utils/constants.ts","../src/utils/getJettonWalletAddress/getJettonWalletAddress.ts","../src/utils/prepareJettonTransfer/prepareJettonTransfer.ts","../src/utils/prepareTonNativeTransfer/prepareTonNativeTransfer.ts","../src/errors/NotTonProviderError.ts","../src/isTonWalletProvider/isTonWalletProvider.ts","../src/utils/tonTransferAmount/tonTransferAmount.ts"],"sourcesContent":["","import { TonClient } from '@ton/ton';\n\ntype CreateTonClientParams = {\n rpcUrl: string;\n};\n\n/** @notInstrumented */\nexport const createTonClient = ({\n rpcUrl,\n}: CreateTonClientParams): TonClient => new TonClient({ endpoint: rpcUrl });\n","import { Address, type TonClient, fromNano } from '@ton/ton';\n\ntype FetchTonBalanceParams = {\n address: string;\n client: TonClient;\n};\n\n/** @notInstrumented */\nexport const fetchTonBalance = async ({\n address,\n client,\n}: FetchTonBalanceParams): Promise<string | null> => {\n try {\n const balanceNano = await client.getBalance(Address.parse(address));\n\n return fromNano(balanceNano);\n } catch {\n return null;\n }\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonNetworkProvider } from '../../TonNetworkProvider.types';\nimport { createTonClient } from '../createTonClient';\nimport { fetchTonBalance } from '../fetchTonBalance';\n\n/** @notInstrumented */\nexport const createTonNetworkProvider = (\n networkData: NetworkData\n): TonNetworkProvider => ({\n ...createBaseNetworkProvider('TON', networkData),\n getBalance: async ({ address }: { address: string }) => ({\n balance: await fetchTonBalance({\n address,\n client: createTonClient({ rpcUrl: networkData.rpcUrls.http[0] }),\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createTonNetworkProvider } from '../utils/createTonNetworkProvider';\n\n/** @notInstrumented */\nexport const registerTonNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('TON')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createTonNetworkProvider,\n chain: 'TON',\n });\n};\n","export const DEFAULT_TIMEOUT = 60;\nexport const DEFAULT_JETTON_GAS = BigInt(50_000_000);\nexport const NANOTON_PER_TON = BigInt(1_000_000_000);\nexport const TON_PROOF_PREFIX = 'ton-proof-item-v2/';\nexport const TON_CONNECT_PREFIX = 'ton-connect';\n","import { Address, type TonClient, beginCell } from '@ton/ton';\n\ntype GetJettonWalletAddressParams = {\n client: TonClient;\n jettonMasterAddress: string;\n ownerAddress: string;\n};\n\n/** @notInstrumented */\nexport const getJettonWalletAddress = async ({\n jettonMasterAddress,\n ownerAddress,\n client,\n}: GetJettonWalletAddressParams): Promise<string> => {\n const masterAddress = Address.parse(jettonMasterAddress);\n const owner = Address.parse(ownerAddress);\n\n const ownerCell = beginCell().storeAddress(owner).endCell();\n\n const result = await client.runMethod(masterAddress, 'get_wallet_address', [\n { cell: ownerCell, type: 'slice' },\n ]);\n\n const jettonWalletAddress = result.stack.readAddress();\n\n return jettonWalletAddress.toString({\n bounceable: true,\n testOnly: false,\n urlSafe: true,\n });\n};\n","import { Address, type TonClient, beginCell } from '@ton/ton';\nimport { CHAIN } from '@tonconnect/sdk';\n\nimport type { TonSendTransactionRequest } from '../../ton.types';\nimport { DEFAULT_JETTON_GAS, DEFAULT_TIMEOUT } from '../constants';\nimport { getJettonWalletAddress } from '../getJettonWalletAddress';\n\ntype PrepareJettonTransferParams = {\n client: TonClient;\n forwardPayload?: string;\n forwardTonAmount: bigint;\n gasAmount?: bigint;\n jettonAmount: bigint;\n jettonMasterAddress: string;\n network?: CHAIN;\n recipientAddress: string;\n timeout?: number;\n walletAddress: string;\n};\n\n/** @notInstrumented */\nexport const prepareJettonTransfer = async ({\n walletAddress,\n jettonMasterAddress,\n recipientAddress,\n jettonAmount,\n forwardTonAmount,\n client,\n forwardPayload = '',\n timeout = DEFAULT_TIMEOUT,\n gasAmount = DEFAULT_JETTON_GAS,\n network = CHAIN.MAINNET,\n}: PrepareJettonTransferParams): Promise<TonSendTransactionRequest> => {\n const validUntil = Math.floor(Date.now() / 1000) + timeout;\n\n const jettonWalletAddr = Address.parse(\n await getJettonWalletAddress({\n client,\n jettonMasterAddress,\n ownerAddress: walletAddress,\n })\n );\n\n const recipientAddr = Address.parse(recipientAddress);\n const walletAddr = Address.parse(walletAddress);\n const isTestnet = network === CHAIN.TESTNET;\n\n const forwardPayloadCell = forwardPayload\n ? beginCell().storeUint(0, 32).storeStringTail(forwardPayload).endCell()\n : beginCell().endCell();\n\n const jettonTransferBody = beginCell()\n .storeUint(0xf8a7ea5, 32)\n .storeUint(0, 64)\n .storeCoins(jettonAmount)\n .storeAddress(recipientAddr)\n .storeAddress(walletAddr)\n .storeBit(0)\n .storeCoins(forwardTonAmount)\n .storeBit(0)\n .storeSlice(forwardPayloadCell.beginParse())\n .endCell();\n\n const totalAmount = forwardTonAmount + gasAmount;\n\n const message = {\n address: jettonWalletAddr.toString({\n bounceable: true,\n testOnly: isTestnet,\n urlSafe: true,\n }),\n amount: totalAmount.toString(),\n payload: jettonTransferBody.toBoc().toString('base64'),\n };\n\n return {\n from: walletAddr.toString({\n bounceable: false,\n testOnly: isTestnet,\n urlSafe: true,\n }),\n messages: [message],\n network,\n validUntil,\n };\n};\n","import { Address } from '@ton/ton';\nimport { CHAIN } from '@tonconnect/sdk';\n\nimport type { TonSendTransactionRequest } from '../../ton.types';\nimport { DEFAULT_TIMEOUT } from '../constants';\n\ntype PrepareTonNativeTransferParams = {\n amountInNanoton: string;\n network?: CHAIN;\n recipient: string;\n timeout?: number;\n walletAddress: string;\n};\n\n/** @notInstrumented */\nexport const prepareTonNativeTransfer = ({\n walletAddress,\n recipient,\n amountInNanoton,\n timeout = DEFAULT_TIMEOUT,\n network = CHAIN.MAINNET,\n}: PrepareTonNativeTransferParams): TonSendTransactionRequest => {\n const validUntil = Math.floor(Date.now() / 1000) + timeout;\n\n const recipientAddress = Address.parse(recipient);\n\n const walletAddr = Address.parse(walletAddress);\n const isTestnet = network === CHAIN.TESTNET;\n\n const message = {\n address: recipientAddress.toString({\n bounceable: false,\n testOnly: isTestnet,\n urlSafe: true,\n }),\n amount: amountInNanoton,\n };\n\n return {\n from: walletAddr.toString({\n bounceable: false,\n testOnly: isTestnet,\n urlSafe: true,\n }),\n messages: [message],\n network,\n validUntil,\n };\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotTonProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_ton_provider_error',\n docsUrl: null,\n name: 'NotTonProviderError',\n shortMessage: 'Provider is not a TON wallet provider',\n });\n this.providerKey = params.providerKey;\n }\n}\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonWalletProvider } from '../TonWalletProvider.types';\n\n/**\n * Type guard function to check if a wallet provider is a TON wallet provider.\n *\n * @param provider - The wallet provider to check.\n * @returns True if the wallet provider is a TON wallet provider, false otherwise.\n * @notInstrumented\n */\nexport const isTonWalletProvider = (\n provider: WalletProvider\n): provider is TonWalletProvider => provider.chain === 'TON';\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport type { TransferAmountParams } from '@dynamic-labs-sdk/client/core';\nimport {\n getWalletProviderFromWalletAccount,\n parseAmountToSmallestUnit,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { NotTonProviderError } from '../../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../../isTonWalletProvider';\n\nconst DEFAULT_DECIMALS = 9;\n\n/** @notInstrumented */\nexport const tonTransferAmount = async (\n { amount, recipient, token, walletAccount }: TransferAmountParams,\n client: DynamicClient\n): Promise<{ transactionHash: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n if (token) {\n const rawAmount = parseAmountToSmallestUnit({\n amount,\n decimals: token.decimals ?? DEFAULT_DECIMALS,\n });\n\n return provider.sendJetton({\n transaction: {\n amount: rawAmount,\n jettonMasterAddress: token.address,\n recipientAddress: recipient,\n },\n walletAccount,\n });\n }\n\n const rawAmount = parseAmountToSmallestUnit({\n amount,\n decimals: DEFAULT_DECIMALS,\n });\n\n return provider.sendTon({\n transaction: {\n amount: rawAmount,\n recipientAddress: recipient,\n },\n walletAccount,\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tonTransferAmount-5Ltz1PnK.esm.js","names":["rawAmount"],"sources":["../package.json","../src/utils/createTonClient/createTonClient.ts","../src/utils/fetchTonBalance/fetchTonBalance.ts","../src/utils/createTonNetworkProvider/createTonNetworkProvider.ts","../src/registerTonNetworkProviderBuilder/registerTonNetworkProviderBuilder.ts","../src/utils/constants.ts","../src/utils/getJettonWalletAddress/getJettonWalletAddress.ts","../src/utils/prepareJettonTransfer/prepareJettonTransfer.ts","../src/utils/prepareTonNativeTransfer/prepareTonNativeTransfer.ts","../src/errors/NotTonProviderError.ts","../src/isTonWalletProvider/isTonWalletProvider.ts","../src/utils/tonTransferAmount/tonTransferAmount.ts"],"sourcesContent":["","import { TonClient } from '@ton/ton';\n\ntype CreateTonClientParams = {\n rpcUrl: string;\n};\n\n/** @notInstrumented */\nexport const createTonClient = ({\n rpcUrl,\n}: CreateTonClientParams): TonClient => new TonClient({ endpoint: rpcUrl });\n","import { Address, type TonClient, fromNano } from '@ton/ton';\n\ntype FetchTonBalanceParams = {\n address: string;\n client: TonClient;\n};\n\n/** @notInstrumented */\nexport const fetchTonBalance = async ({\n address,\n client,\n}: FetchTonBalanceParams): Promise<string | null> => {\n try {\n const balanceNano = await client.getBalance(Address.parse(address));\n\n return fromNano(balanceNano);\n } catch {\n return null;\n }\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonNetworkProvider } from '../../TonNetworkProvider.types';\nimport { createTonClient } from '../createTonClient';\nimport { fetchTonBalance } from '../fetchTonBalance';\n\n/** @notInstrumented */\nexport const createTonNetworkProvider = (\n networkData: NetworkData\n): TonNetworkProvider => ({\n ...createBaseNetworkProvider('TON', networkData),\n getBalance: async ({ address }: { address: string }) => ({\n balance: await fetchTonBalance({\n address,\n client: createTonClient({ rpcUrl: networkData.rpcUrls.http[0] }),\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createTonNetworkProvider } from '../utils/createTonNetworkProvider';\n\n/** @notInstrumented */\nexport const registerTonNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('TON')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: createTonNetworkProvider,\n chain: 'TON',\n });\n};\n","export const DEFAULT_TIMEOUT = 60;\nexport const DEFAULT_JETTON_GAS = BigInt(50_000_000);\nexport const NANOTON_PER_TON = BigInt(1_000_000_000);\nexport const TON_PROOF_PREFIX = 'ton-proof-item-v2/';\nexport const TON_CONNECT_PREFIX = 'ton-connect';\n","import { Address, type TonClient, beginCell } from '@ton/ton';\n\ntype GetJettonWalletAddressParams = {\n client: TonClient;\n jettonMasterAddress: string;\n ownerAddress: string;\n};\n\n/** @notInstrumented */\nexport const getJettonWalletAddress = async ({\n jettonMasterAddress,\n ownerAddress,\n client,\n}: GetJettonWalletAddressParams): Promise<string> => {\n const masterAddress = Address.parse(jettonMasterAddress);\n const owner = Address.parse(ownerAddress);\n\n const ownerCell = beginCell().storeAddress(owner).endCell();\n\n const result = await client.runMethod(masterAddress, 'get_wallet_address', [\n { cell: ownerCell, type: 'slice' },\n ]);\n\n const jettonWalletAddress = result.stack.readAddress();\n\n return jettonWalletAddress.toString({\n bounceable: true,\n testOnly: false,\n urlSafe: true,\n });\n};\n","import { Address, type TonClient, beginCell } from '@ton/ton';\nimport { CHAIN } from '@tonconnect/sdk';\n\nimport type { TonSendTransactionRequest } from '../../ton.types';\nimport { DEFAULT_JETTON_GAS, DEFAULT_TIMEOUT } from '../constants';\nimport { getJettonWalletAddress } from '../getJettonWalletAddress';\n\ntype PrepareJettonTransferParams = {\n client: TonClient;\n forwardPayload?: string;\n forwardTonAmount: bigint;\n gasAmount?: bigint;\n jettonAmount: bigint;\n jettonMasterAddress: string;\n network?: CHAIN;\n recipientAddress: string;\n timeout?: number;\n walletAddress: string;\n};\n\n/** @notInstrumented */\nexport const prepareJettonTransfer = async ({\n walletAddress,\n jettonMasterAddress,\n recipientAddress,\n jettonAmount,\n forwardTonAmount,\n client,\n forwardPayload = '',\n timeout = DEFAULT_TIMEOUT,\n gasAmount = DEFAULT_JETTON_GAS,\n network = CHAIN.MAINNET,\n}: PrepareJettonTransferParams): Promise<TonSendTransactionRequest> => {\n const validUntil = Math.floor(Date.now() / 1000) + timeout;\n\n const jettonWalletAddr = Address.parse(\n await getJettonWalletAddress({\n client,\n jettonMasterAddress,\n ownerAddress: walletAddress,\n })\n );\n\n const recipientAddr = Address.parse(recipientAddress);\n const walletAddr = Address.parse(walletAddress);\n const isTestnet = network === CHAIN.TESTNET;\n\n const forwardPayloadCell = forwardPayload\n ? beginCell().storeUint(0, 32).storeStringTail(forwardPayload).endCell()\n : beginCell().endCell();\n\n const jettonTransferBody = beginCell()\n .storeUint(0xf8a7ea5, 32)\n .storeUint(0, 64)\n .storeCoins(jettonAmount)\n .storeAddress(recipientAddr)\n .storeAddress(walletAddr)\n .storeBit(0)\n .storeCoins(forwardTonAmount)\n .storeBit(0)\n .storeSlice(forwardPayloadCell.beginParse())\n .endCell();\n\n const totalAmount = forwardTonAmount + gasAmount;\n\n const message = {\n address: jettonWalletAddr.toString({\n bounceable: true,\n testOnly: isTestnet,\n urlSafe: true,\n }),\n amount: totalAmount.toString(),\n payload: jettonTransferBody.toBoc().toString('base64'),\n };\n\n return {\n from: walletAddr.toString({\n bounceable: false,\n testOnly: isTestnet,\n urlSafe: true,\n }),\n messages: [message],\n network,\n validUntil,\n };\n};\n","import { Address } from '@ton/ton';\nimport { CHAIN } from '@tonconnect/sdk';\n\nimport type { TonSendTransactionRequest } from '../../ton.types';\nimport { DEFAULT_TIMEOUT } from '../constants';\n\ntype PrepareTonNativeTransferParams = {\n amountInNanoton: string;\n network?: CHAIN;\n recipient: string;\n timeout?: number;\n walletAddress: string;\n};\n\n/** @notInstrumented */\nexport const prepareTonNativeTransfer = ({\n walletAddress,\n recipient,\n amountInNanoton,\n timeout = DEFAULT_TIMEOUT,\n network = CHAIN.MAINNET,\n}: PrepareTonNativeTransferParams): TonSendTransactionRequest => {\n const validUntil = Math.floor(Date.now() / 1000) + timeout;\n\n const recipientAddress = Address.parse(recipient);\n\n const walletAddr = Address.parse(walletAddress);\n const isTestnet = network === CHAIN.TESTNET;\n\n const message = {\n address: recipientAddress.toString({\n bounceable: false,\n testOnly: isTestnet,\n urlSafe: true,\n }),\n amount: amountInNanoton,\n };\n\n return {\n from: walletAddr.toString({\n bounceable: false,\n testOnly: isTestnet,\n urlSafe: true,\n }),\n messages: [message],\n network,\n validUntil,\n };\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotTonProviderError extends BaseError {\n public readonly providerKey: string;\n\n constructor(params: { providerKey: string }) {\n super({\n cause: null,\n code: 'not_ton_provider_error',\n docsUrl: null,\n name: 'NotTonProviderError',\n shortMessage: 'Provider is not a TON wallet provider',\n });\n this.providerKey = params.providerKey;\n }\n}\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TonWalletProvider } from '../TonWalletProvider.types';\n\n/**\n * Type guard function to check if a wallet provider is a TON wallet provider.\n *\n * @example\n * ```ts\n * if (isTonWalletProvider(provider)) {\n * const tonConnectUI = provider.getTonConnectUI();\n * }\n * ```\n *\n * @param provider - The wallet provider to check.\n * @returns True if the wallet provider is a TON wallet provider, false otherwise.\n * @see isTonWalletAccount\n * @see addTonExtension\n * @notInstrumented\n */\nexport const isTonWalletProvider = (\n provider: WalletProvider\n): provider is TonWalletProvider => provider.chain === 'TON';\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport type { TransferAmountParams } from '@dynamic-labs-sdk/client/core';\nimport {\n getWalletProviderFromWalletAccount,\n parseAmountToSmallestUnit,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { NotTonProviderError } from '../../errors/NotTonProviderError';\nimport { isTonWalletProvider } from '../../isTonWalletProvider';\n\nconst DEFAULT_DECIMALS = 9;\n\n/** @notInstrumented */\nexport const tonTransferAmount = async (\n { amount, recipient, token, walletAccount }: TransferAmountParams,\n client: DynamicClient\n): Promise<{ transactionHash: string }> => {\n const provider = getWalletProviderFromWalletAccount(\n { walletAccount },\n client\n );\n\n if (!isTonWalletProvider(provider)) {\n throw new NotTonProviderError({ providerKey: provider.key });\n }\n\n if (token) {\n const rawAmount = parseAmountToSmallestUnit({\n amount,\n decimals: token.decimals ?? DEFAULT_DECIMALS,\n });\n\n return provider.sendJetton({\n transaction: {\n amount: rawAmount,\n jettonMasterAddress: token.address,\n recipientAddress: recipient,\n },\n walletAccount,\n });\n }\n\n const rawAmount = parseAmountToSmallestUnit({\n amount,\n decimals: DEFAULT_DECIMALS,\n });\n\n return provider.sendTon({\n transaction: {\n amount: rawAmount,\n recipientAddress: recipient,\n },\n walletAccount,\n });\n};\n"],"mappings":";;;;;;;;;;;;ACOA,MAAa,mBAAmB,EAC9B,aACsC,IAAI,UAAU,EAAE,UAAU,QAAQ,CAAC;;;;;ACD3E,MAAa,kBAAkB,OAAO,EACpC,SACA,aACmD;AACnD,KAAI;AAGF,SAAO,SAFa,MAAM,OAAO,WAAW,QAAQ,MAAM,QAAQ,CAAC,CAEvC;SACtB;AACN,SAAO;;;;;;;ACTX,MAAa,4BACX,iBACwB;CACxB,GAAG,0BAA0B,OAAO,YAAY;CAChD,YAAY,OAAO,EAAE,eAAoC,EACvD,SAAS,MAAM,gBAAgB;EAC7B;EACA,QAAQ,gBAAgB,EAAE,QAAQ,YAAY,QAAQ,KAAK,IAAI,CAAC;EACjE,CAAC,EACH;CACF;;;;;ACZD,MAAa,qCACX,WACS;CACT,MAAM,iCACJ,kCAAkC,OAAO;AAE3C,KAAI,+BAA+B,KAAK,CAAC,IAAI,MAAM,CACjD;AAGF,gCAA+B,SAAS;EACtC,SAAS;EACT,OAAO;EACR,CAAC;;;;;ACnBJ,MAAa,kBAAkB;AAC/B,MAAa,qBAAqB,OAAO,IAAW;AACpD,MAAa,kBAAkB,OAAO,IAAc;AACpD,MAAa,mBAAmB;AAChC,MAAa,qBAAqB;;;;;ACKlC,MAAa,yBAAyB,OAAO,EAC3C,qBACA,cACA,aACmD;CACnD,MAAM,gBAAgB,QAAQ,MAAM,oBAAoB;CACxD,MAAM,QAAQ,QAAQ,MAAM,aAAa;CAEzC,MAAM,YAAY,WAAW,CAAC,aAAa,MAAM,CAAC,SAAS;AAQ3D,SANe,MAAM,OAAO,UAAU,eAAe,sBAAsB,CACzE;EAAE,MAAM;EAAW,MAAM;EAAS,CACnC,CAAC,EAEiC,MAAM,aAAa,CAE3B,SAAS;EAClC,YAAY;EACZ,UAAU;EACV,SAAS;EACV,CAAC;;;;;;ACRJ,MAAa,wBAAwB,OAAO,EAC1C,eACA,qBACA,kBACA,cACA,kBACA,QACA,iBAAiB,IACjB,UAAU,iBACV,YAAY,oBACZ,UAAU,MAAM,cACqD;CACrE,MAAM,aAAa,KAAK,MAAM,KAAK,KAAK,GAAG,IAAK,GAAG;CAEnD,MAAM,mBAAmB,QAAQ,MAC/B,MAAM,uBAAuB;EAC3B;EACA;EACA,cAAc;EACf,CAAC,CACH;CAED,MAAM,gBAAgB,QAAQ,MAAM,iBAAiB;CACrD,MAAM,aAAa,QAAQ,MAAM,cAAc;CAC/C,MAAM,YAAY,YAAY,MAAM;CAEpC,MAAM,qBAAqB,iBACvB,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,gBAAgB,eAAe,CAAC,SAAS,GACtE,WAAW,CAAC,SAAS;CAEzB,MAAM,qBAAqB,WAAW,CACnC,UAAU,WAAW,GAAG,CACxB,UAAU,GAAG,GAAG,CAChB,WAAW,aAAa,CACxB,aAAa,cAAc,CAC3B,aAAa,WAAW,CACxB,SAAS,EAAE,CACX,WAAW,iBAAiB,CAC5B,SAAS,EAAE,CACX,WAAW,mBAAmB,YAAY,CAAC,CAC3C,SAAS;CAEZ,MAAM,cAAc,mBAAmB;CAEvC,MAAM,UAAU;EACd,SAAS,iBAAiB,SAAS;GACjC,YAAY;GACZ,UAAU;GACV,SAAS;GACV,CAAC;EACF,QAAQ,YAAY,UAAU;EAC9B,SAAS,mBAAmB,OAAO,CAAC,SAAS,SAAS;EACvD;AAED,QAAO;EACL,MAAM,WAAW,SAAS;GACxB,YAAY;GACZ,UAAU;GACV,SAAS;GACV,CAAC;EACF,UAAU,CAAC,QAAQ;EACnB;EACA;EACD;;;;;;ACrEH,MAAa,4BAA4B,EACvC,eACA,WACA,iBACA,UAAU,iBACV,UAAU,MAAM,cAC+C;CAC/D,MAAM,aAAa,KAAK,MAAM,KAAK,KAAK,GAAG,IAAK,GAAG;CAEnD,MAAM,mBAAmB,QAAQ,MAAM,UAAU;CAEjD,MAAM,aAAa,QAAQ,MAAM,cAAc;CAC/C,MAAM,YAAY,YAAY,MAAM;CAEpC,MAAM,UAAU;EACd,SAAS,iBAAiB,SAAS;GACjC,YAAY;GACZ,UAAU;GACV,SAAS;GACV,CAAC;EACF,QAAQ;EACT;AAED,QAAO;EACL,MAAM,WAAW,SAAS;GACxB,YAAY;GACZ,UAAU;GACV,SAAS;GACV,CAAC;EACF,UAAU,CAAC,QAAQ;EACnB;EACA;EACD;;;;;AC7CH,IAAa,sBAAb,cAAyC,UAAU;CACjD,AAAgB;CAEhB,YAAY,QAAiC;AAC3C,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cAAc;GACf,CAAC;AACF,OAAK,cAAc,OAAO;;;;;;;;;;;;;;;;;;;;;;ACO9B,MAAa,uBACX,aACkC,SAAS,UAAU;;;;ACZvD,MAAM,mBAAmB;;AAGzB,MAAa,oBAAoB,OAC/B,EAAE,QAAQ,WAAW,OAAO,iBAC5B,WACyC;CACzC,MAAM,WAAW,mCACf,EAAE,eAAe,EACjB,OACD;AAED,KAAI,CAAC,oBAAoB,SAAS,CAChC,OAAM,IAAI,oBAAoB,EAAE,aAAa,SAAS,KAAK,CAAC;AAG9D,KAAI,OAAO;EACT,MAAMA,cAAY,0BAA0B;GAC1C;GACA,UAAU,MAAM,YAAY;GAC7B,CAAC;AAEF,SAAO,SAAS,WAAW;GACzB,aAAa;IACX,QAAQA;IACR,qBAAqB,MAAM;IAC3B,kBAAkB;IACnB;GACD;GACD,CAAC;;CAGJ,MAAM,YAAY,0BAA0B;EAC1C;EACA,UAAU;EACX,CAAC;AAEF,QAAO,SAAS,QAAQ;EACtB,aAAa;GACX,QAAQ;GACR,kBAAkB;GACnB;EACD;EACD,CAAC"}
|