@dynamic-labs-sdk/ton 0.22.1 → 0.23.1
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-BjLu4bCw.esm.js +494 -0
- package/dist/addTonConnectExtension-BjLu4bCw.esm.js.map +1 -0
- package/dist/addTonConnectExtension-BwivgYxf.cjs.js +499 -0
- package/dist/addTonConnectExtension-BwivgYxf.cjs.js.map +1 -0
- package/dist/addTonExtension/addTonExtension.d.ts +4 -4
- package/dist/addTonExtension/addTonExtension.d.ts.map +1 -1
- package/dist/{addWaasTonExtension-Dzrb4rja.cjs.js → addWaasTonExtension-BMUnBCa-.cjs.js} +15 -251
- package/dist/addWaasTonExtension-BMUnBCa-.cjs.js.map +1 -0
- package/dist/{addWaasTonExtension-B8tYiMfm.esm.js → addWaasTonExtension-DK3VpHNd.esm.js} +8 -202
- package/dist/addWaasTonExtension-DK3VpHNd.esm.js.map +1 -0
- package/dist/errors/StateInitMissingError.d.ts +5 -0
- package/dist/errors/StateInitMissingError.d.ts.map +1 -0
- package/dist/errors/TonConnectProofNotAvailableError.d.ts +5 -0
- package/dist/errors/TonConnectProofNotAvailableError.d.ts.map +1 -0
- package/dist/errors/TonConnectReconnectedError.d.ts +7 -0
- package/dist/errors/TonConnectReconnectedError.d.ts.map +1 -0
- package/dist/errors/TonConnectRejectedError.d.ts +5 -0
- package/dist/errors/TonConnectRejectedError.d.ts.map +1 -0
- package/dist/errors/TonConnectTimeoutError.d.ts +5 -0
- package/dist/errors/TonConnectTimeoutError.d.ts.map +1 -0
- package/dist/exports/index.d.ts +2 -0
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/tonConnect.d.ts +2 -0
- package/dist/exports/tonConnect.d.ts.map +1 -0
- package/dist/generateTonConnectProof/generateTonConnectProof.d.ts +20 -0
- package/dist/generateTonConnectProof/generateTonConnectProof.d.ts.map +1 -0
- package/dist/generateTonConnectProof/index.d.ts +2 -0
- package/dist/generateTonConnectProof/index.d.ts.map +1 -0
- package/dist/index.cjs.js +60 -11
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +54 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/sendTransaction/index.d.ts +2 -0
- package/dist/sendTransaction/index.d.ts.map +1 -0
- package/dist/sendTransaction/sendTransaction.d.ts +19 -0
- package/dist/sendTransaction/sendTransaction.d.ts.map +1 -0
- package/dist/tonConnect/addTonConnectExtension/addTonConnectExtension.d.ts +13 -0
- package/dist/tonConnect/addTonConnectExtension/addTonConnectExtension.d.ts.map +1 -0
- package/dist/tonConnect/addTonConnectExtension/index.d.ts +2 -0
- package/dist/tonConnect/addTonConnectExtension/index.d.ts.map +1 -0
- package/dist/tonConnect/supportedTonConnectWallets.d.ts +14 -0
- package/dist/tonConnect/supportedTonConnectWallets.d.ts.map +1 -0
- package/dist/tonConnect/utils/createWalletProviderFromTonConnect/createWalletProviderFromTonConnect.d.ts +24 -0
- package/dist/tonConnect/utils/createWalletProviderFromTonConnect/createWalletProviderFromTonConnect.d.ts.map +1 -0
- package/dist/tonConnect/utils/createWalletProviderFromTonConnect/index.d.ts +2 -0
- package/dist/tonConnect/utils/createWalletProviderFromTonConnect/index.d.ts.map +1 -0
- package/dist/tonConnect/utils/discoverAndRegisterWallets/discoverAndRegisterWallets.d.ts +17 -0
- package/dist/tonConnect/utils/discoverAndRegisterWallets/discoverAndRegisterWallets.d.ts.map +1 -0
- package/dist/tonConnect/utils/discoverAndRegisterWallets/index.d.ts +2 -0
- package/dist/tonConnect/utils/discoverAndRegisterWallets/index.d.ts.map +1 -0
- package/dist/tonConnect/utils/extractPublicKeyFromStateInit/extractPublicKeyFromStateInit.d.ts +14 -0
- package/dist/tonConnect/utils/extractPublicKeyFromStateInit/extractPublicKeyFromStateInit.d.ts.map +1 -0
- package/dist/tonConnect/utils/extractPublicKeyFromStateInit/index.d.ts +2 -0
- package/dist/tonConnect/utils/extractPublicKeyFromStateInit/index.d.ts.map +1 -0
- package/dist/tonConnect.cjs.js +10 -0
- package/dist/tonConnect.cjs.js.map +1 -0
- package/dist/tonConnect.esm.js +10 -0
- package/dist/tonConnect.esm.js.map +1 -0
- package/dist/tonTransferAmount-BGBBN_12.cjs.js +285 -0
- package/dist/tonTransferAmount-BGBBN_12.cjs.js.map +1 -0
- package/dist/tonTransferAmount-CZtmPrlt.esm.js +202 -0
- package/dist/tonTransferAmount-CZtmPrlt.esm.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/waas.cjs.js +5 -4
- package/dist/waas.cjs.js.map +1 -1
- package/dist/waas.esm.js +2 -1
- package/dist/waas.esm.js.map +1 -1
- package/package.json +9 -3
- package/dist/addWaasTonExtension-B8tYiMfm.esm.js.map +0 -1
- package/dist/addWaasTonExtension-Dzrb4rja.cjs.js.map +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,24 +1,50 @@
|
|
|
1
|
-
import { c as
|
|
1
|
+
import { c as NANOTON_PER_TON, m as version, n as isTonWalletProvider, p as name, r as NotTonProviderError } from "./tonTransferAmount-CZtmPrlt.esm.js";
|
|
2
|
+
import { t as addTonConnectExtension } from "./addTonConnectExtension-BjLu4bCw.esm.js";
|
|
3
|
+
import { n as TransactionExecutionFailedError, t as addWaasTonExtension } from "./addWaasTonExtension-DK3VpHNd.esm.js";
|
|
2
4
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
3
|
-
import { getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
|
|
5
|
+
import { MethodNotImplementedError, getDefaultClient, getWalletProviderFromWalletAccount } from "@dynamic-labs-sdk/client/core";
|
|
4
6
|
import { getDefaultClient as getDefaultClient$1 } from "@dynamic-labs-sdk/client";
|
|
5
7
|
|
|
6
8
|
//#region src/addTonExtension/addTonExtension.ts
|
|
7
9
|
/**
|
|
8
10
|
* Adds the TON extension to the Dynamic client.
|
|
9
11
|
*
|
|
10
|
-
* This is a convenience function that adds the
|
|
11
|
-
* enabling support for
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* This is a convenience function that adds both the TonConnect extension
|
|
13
|
+
* and the Dynamic WaaS TON extension, enabling support for all TON wallet types
|
|
14
|
+
* including external wallets (Tonkeeper, MyTonWallet, etc.) and embedded wallets
|
|
15
|
+
* managed by Dynamic's infrastructure.
|
|
14
16
|
*
|
|
15
17
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
16
18
|
* @not-instrumented
|
|
17
19
|
*/
|
|
18
20
|
const addTonExtension = (client = getDefaultClient()) => {
|
|
21
|
+
addTonConnectExtension(client);
|
|
19
22
|
addWaasTonExtension(client);
|
|
20
23
|
};
|
|
21
24
|
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/generateTonConnectProof/generateTonConnectProof.ts
|
|
27
|
+
/**
|
|
28
|
+
* Generates a TonConnect proof for a wallet account.
|
|
29
|
+
*
|
|
30
|
+
* @param params.payload - The proof payload (typically a nonce)
|
|
31
|
+
* @param params.walletAccount - The wallet account to generate the proof for
|
|
32
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
33
|
+
* @returns The TonConnect proof containing address, domain, payload, signature, and timestamp
|
|
34
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
35
|
+
* @throws {MethodNotImplementedError} If the wallet provider does not support generateTonConnectProof
|
|
36
|
+
* @not-instrumented
|
|
37
|
+
*/
|
|
38
|
+
const generateTonConnectProof = async ({ payload, walletAccount }, client = getDefaultClient$1()) => {
|
|
39
|
+
const provider = getWalletProviderFromWalletAccount({ walletAccount }, client);
|
|
40
|
+
if (!isTonWalletProvider(provider)) throw new NotTonProviderError({ providerKey: provider.key });
|
|
41
|
+
if (!provider.generateTonConnectProof) throw new MethodNotImplementedError("generateTonConnectProof");
|
|
42
|
+
return provider.generateTonConnectProof({
|
|
43
|
+
payload,
|
|
44
|
+
walletAccount
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
|
|
22
48
|
//#endregion
|
|
23
49
|
//#region src/isTonNetworkProvider/isTonNetworkProvider.ts
|
|
24
50
|
/**
|
|
@@ -83,10 +109,31 @@ const sendTon = async ({ walletAccount, transaction }, client = getDefaultClient
|
|
|
83
109
|
});
|
|
84
110
|
};
|
|
85
111
|
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region src/sendTransaction/sendTransaction.ts
|
|
114
|
+
/**
|
|
115
|
+
* Sends a custom TON transaction with an arbitrary message payload.
|
|
116
|
+
*
|
|
117
|
+
* @param params.request - The raw TON transaction request (messages, validUntil, etc.)
|
|
118
|
+
* @param params.walletAccount - The wallet account to send the transaction from
|
|
119
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
120
|
+
* @returns An object containing the transaction hash
|
|
121
|
+
* @throws {NotTonProviderError} If the wallet provider is not a TON wallet provider
|
|
122
|
+
* @not-instrumented
|
|
123
|
+
*/
|
|
124
|
+
const sendTransaction = async ({ request, walletAccount }, client = getDefaultClient$1()) => {
|
|
125
|
+
const provider = getWalletProviderFromWalletAccount({ walletAccount }, client);
|
|
126
|
+
if (!isTonWalletProvider(provider)) throw new NotTonProviderError({ providerKey: provider.key });
|
|
127
|
+
return provider.sendTransaction({
|
|
128
|
+
request,
|
|
129
|
+
walletAccount
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
|
|
86
133
|
//#endregion
|
|
87
134
|
//#region src/exports/index.ts
|
|
88
135
|
assertPackageVersion(name, version);
|
|
89
136
|
|
|
90
137
|
//#endregion
|
|
91
|
-
export { NANOTON_PER_TON, NotTonProviderError, TransactionExecutionFailedError, addTonExtension, isTonNetworkProvider, isTonWalletAccount, isTonWalletProvider, sendJetton, sendTon };
|
|
138
|
+
export { NANOTON_PER_TON, NotTonProviderError, TransactionExecutionFailedError, addTonExtension, generateTonConnectProof, isTonNetworkProvider, isTonWalletAccount, isTonWalletProvider, sendJetton, sendTon, sendTransaction };
|
|
92
139
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","names":["getDefaultClient","getDefaultClient","packageName","packageVersion"],"sources":["../src/addTonExtension/addTonExtension.ts","../src/isTonNetworkProvider/isTonNetworkProvider.ts","../src/isTonWalletAccount/isTonWalletAccount.ts","../src/sendJetton/sendJetton.ts","../src/sendTon/sendTon.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addWaasTonExtension } from '../waas/addWaasTonExtension';\n\n/**\n * Adds the TON extension to the Dynamic client.\n *\n * This is a convenience function that adds the Dynamic WaaS TON extension,\n * enabling support for embedded wallets managed by Dynamic's infrastructure.\n * TonConnect external wallet support will be composed through this function\n * once the TonConnect extension is added.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTonExtension = (client = getDefaultClient()): void => {\n addWaasTonExtension(client);\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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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 { 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 { addTonExtension } from '../addTonExtension';\nexport { NotTonProviderError } from '../errors/NotTonProviderError';\nexport { TransactionExecutionFailedError } from '../errors/TransactionExecutionFailedError';\nexport { isTonNetworkProvider } from '../isTonNetworkProvider';\nexport { isTonWalletAccount } from '../isTonWalletAccount';\nexport { isTonWalletProvider } from '../isTonWalletProvider';\nexport { sendJetton } from '../sendJetton';\nexport { sendTon } from '../sendTon';\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":";;;;;;;;;;;;;;;;;AAeA,MAAa,mBAAmB,SAAS,kBAAkB,KAAW;AACpE,qBAAoB,OAAO;;;;;;;;;;;;ACL7B,MAAa,wBACX,oBAC0C,gBAAgB,UAAU;;;;;;;;;;;ACFtE,MAAa,sBACX,kBACsC,cAAc,UAAU;;;;;;;;;;;;;;ACUhE,MAAa,aAAa,OACxB,EAAE,eAAe,eACjB,SAASA,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;;;;;AC7BzD,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 { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addTonConnectExtension } from '../tonConnect/addTonConnectExtension';\nimport { addWaasTonExtension } from '../waas/addWaasTonExtension';\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 [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @not-instrumented\n */\nexport const addTonExtension = (client = getDefaultClient()): void => {\n addTonConnectExtension(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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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 * @not-instrumented\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 { addTonExtension } 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":";;;;;;;;;;;;;;;;;;;AAgBA,MAAa,mBAAmB,SAAS,kBAAkB,KAAW;AACpE,wBAAuB,OAAO;AAC9B,qBAAoB,OAAO;;;;;;;;;;;;;;;;ACS7B,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sendTransaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TonSendTransactionRequest, TonSendTransactionResponse } from '../ton.types';
|
|
2
|
+
import type { TonWalletAccount } from '../TonWalletAccount.types';
|
|
3
|
+
type SendTransactionParams = {
|
|
4
|
+
request: TonSendTransactionRequest;
|
|
5
|
+
walletAccount: TonWalletAccount;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Sends a custom TON transaction with an arbitrary message payload.
|
|
9
|
+
*
|
|
10
|
+
* @param params.request - The raw TON transaction request (messages, validUntil, etc.)
|
|
11
|
+
* @param params.walletAccount - The wallet account to send the transaction from
|
|
12
|
+
* @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
|
+
* @not-instrumented
|
|
16
|
+
*/
|
|
17
|
+
export declare const sendTransaction: ({ request, walletAccount }: SendTransactionParams, client?: import("@dynamic-labs-sdk/client").DynamicClient) => Promise<TonSendTransactionResponse>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=sendTransaction.d.ts.map
|
|
@@ -0,0 +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;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,+BACE,qBAAqB,gEAEhD,OAAO,CAAC,0BAA0B,CAWpC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const TON_CONNECT_EXTENSION_KEY = "tonConnect";
|
|
2
|
+
/**
|
|
3
|
+
* Adds the TonConnect extension to the Dynamic client.
|
|
4
|
+
*
|
|
5
|
+
* This extension enables external TON wallet support via the TonConnect protocol,
|
|
6
|
+
* discovering and registering supported wallets (Tonkeeper, MyTonWallet, etc.)
|
|
7
|
+
* as wallet providers.
|
|
8
|
+
*
|
|
9
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
10
|
+
* @not-instrumented
|
|
11
|
+
*/
|
|
12
|
+
export declare const addTonConnectExtension: (client?: import("@dynamic-labs-sdk/client").DynamicClient) => void;
|
|
13
|
+
//# sourceMappingURL=addTonConnectExtension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addTonConnectExtension.d.ts","sourceRoot":"","sources":["../../../src/tonConnect/addTonConnectExtension/addTonConnectExtension.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,iEAAkC,IAgBpE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tonConnect/addTonConnectExtension/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated list of TON wallets supported by the SDK.
|
|
3
|
+
*
|
|
4
|
+
* TonConnect's getWallets() returns every wallet in its ecosystem registry,
|
|
5
|
+
* not just installed ones. Unlike EVM (EIP-6963) or Solana (Wallet Standard)
|
|
6
|
+
* where wallets self-announce, TonConnect provides a catalog, so we maintain
|
|
7
|
+
* an allowlist to control which wallets appear in the UI.
|
|
8
|
+
*
|
|
9
|
+
* Keys are TonConnect appName identifiers. Values are display name overrides
|
|
10
|
+
* (when TonConnect's default name is too generic, e.g. "Wallet" for Telegram
|
|
11
|
+
* Wallet). When the value is undefined, TonConnect's name is used as is.
|
|
12
|
+
*/
|
|
13
|
+
export declare const SUPPORTED_TON_CONNECT_WALLETS: Record<string, string | undefined>;
|
|
14
|
+
//# sourceMappingURL=supportedTonConnectWallets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportedTonConnectWallets.d.ts","sourceRoot":"","sources":["../../src/tonConnect/supportedTonConnectWallets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAK1E,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DynamicClient } from '@dynamic-labs-sdk/client';
|
|
2
|
+
import type { TonConnectUI } from '@tonconnect/ui';
|
|
3
|
+
import type { TonWalletProvider } from '../../../TonWalletProvider.types';
|
|
4
|
+
type CreateWalletProviderFromTonConnectParams = {
|
|
5
|
+
dynamicClient: DynamicClient;
|
|
6
|
+
tonConnectUI: TonConnectUI;
|
|
7
|
+
walletInfo: {
|
|
8
|
+
appName: string;
|
|
9
|
+
icon: string;
|
|
10
|
+
jsBridgeKey?: string;
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Creates a TonWalletProvider from a TonConnect wallet.
|
|
16
|
+
*
|
|
17
|
+
* Wraps the TonConnect UI instance to provide connect, disconnect, sign, and
|
|
18
|
+
* send operations for an external TON wallet (Tonkeeper, MyTonWallet, etc.).
|
|
19
|
+
*
|
|
20
|
+
* @not-instrumented
|
|
21
|
+
*/
|
|
22
|
+
export declare const createWalletProviderFromTonConnect: ({ dynamicClient, tonConnectUI, walletInfo, }: CreateWalletProviderFromTonConnectParams) => TonWalletProvider;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=createWalletProviderFromTonConnect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createWalletProviderFromTonConnect.d.ts","sourceRoot":"","sources":["../../../../src/tonConnect/utils/createWalletProviderFromTonConnect/createWalletProviderFromTonConnect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAc9D,OAAO,KAAK,EAEV,YAAY,EAEb,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAU1E,KAAK,wCAAwC,GAAG;IAC9C,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,iDAI5C,wCAAwC,KAAG,iBAmhB7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tonConnect/utils/createWalletProviderFromTonConnect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DynamicClient } from '@dynamic-labs-sdk/client';
|
|
2
|
+
import type { TonConnectUI } from '@tonconnect/ui';
|
|
3
|
+
type DiscoverAndRegisterWalletsParams = {
|
|
4
|
+
client: DynamicClient;
|
|
5
|
+
tonConnectUI: TonConnectUI;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Discovers supported TonConnect wallets and registers them as wallet providers.
|
|
9
|
+
*
|
|
10
|
+
* Queries the TonConnect registry for available wallets, filters to the
|
|
11
|
+
* curated allowlist, and registers each as a wallet provider with the Dynamic client.
|
|
12
|
+
*
|
|
13
|
+
* @not-instrumented
|
|
14
|
+
*/
|
|
15
|
+
export declare const discoverAndRegisterWallets: ({ client, tonConnectUI, }: DiscoverAndRegisterWalletsParams) => Promise<void>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=discoverAndRegisterWallets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discoverAndRegisterWallets.d.ts","sourceRoot":"","sources":["../../../../src/tonConnect/utils/discoverAndRegisterWallets/discoverAndRegisterWallets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAK9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,KAAK,gCAAgC,GAAG;IACtC,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,8BAGpC,gCAAgC,KAAG,OAAO,CAAC,IAAI,CAiCjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tonConnect/utils/discoverAndRegisterWallets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/tonConnect/utils/extractPublicKeyFromStateInit/extractPublicKeyFromStateInit.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type ExtractPublicKeyFromStateInitParams = {
|
|
2
|
+
stateInitBase64: string;
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the public key from a TON wallet's StateInit.
|
|
6
|
+
*
|
|
7
|
+
* Parses the base64-encoded StateInit cell to retrieve the 32-byte public key
|
|
8
|
+
* from the data cell, handling both V5R1 and standard wallet contract layouts.
|
|
9
|
+
*
|
|
10
|
+
* @not-instrumented
|
|
11
|
+
*/
|
|
12
|
+
export declare const extractPublicKeyFromStateInit: ({ stateInitBase64, }: ExtractPublicKeyFromStateInitParams) => string;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=extractPublicKeyFromStateInit.d.ts.map
|
package/dist/tonConnect/utils/extractPublicKeyFromStateInit/extractPublicKeyFromStateInit.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractPublicKeyFromStateInit.d.ts","sourceRoot":"","sources":["../../../../src/tonConnect/utils/extractPublicKeyFromStateInit/extractPublicKeyFromStateInit.ts"],"names":[],"mappings":"AAcA,KAAK,mCAAmC,GAAG;IACzC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,yBAEvC,mCAAmC,KAAG,MAuBxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tonConnect/utils/extractPublicKeyFromStateInit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const require_tonTransferAmount = require('./tonTransferAmount-BGBBN_12.cjs.js');
|
|
2
|
+
const require_addTonConnectExtension = require('./addTonConnectExtension-BwivgYxf.cjs.js');
|
|
3
|
+
let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
|
|
4
|
+
|
|
5
|
+
//#region src/exports/tonConnect.ts
|
|
6
|
+
(0, _dynamic_labs_sdk_assert_package_version.assertPackageVersion)(require_tonTransferAmount.name, require_tonTransferAmount.version);
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
exports.addTonConnectExtension = require_addTonConnectExtension.addTonConnectExtension;
|
|
10
|
+
//# sourceMappingURL=tonConnect.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonConnect.cjs.js","names":["packageName","packageVersion"],"sources":["../src/exports/tonConnect.ts"],"sourcesContent":["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 { addTonConnectExtension } from '../tonConnect/addTonConnectExtension';\n"],"mappings":";;;;;mEAOqBA,gCAAaC,kCAAe"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { m as version, p as name } from "./tonTransferAmount-CZtmPrlt.esm.js";
|
|
2
|
+
import { t as addTonConnectExtension } from "./addTonConnectExtension-BjLu4bCw.esm.js";
|
|
3
|
+
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
4
|
+
|
|
5
|
+
//#region src/exports/tonConnect.ts
|
|
6
|
+
assertPackageVersion(name, version);
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { addTonConnectExtension };
|
|
10
|
+
//# sourceMappingURL=tonConnect.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonConnect.esm.js","names":["packageName","packageVersion"],"sources":["../src/exports/tonConnect.ts"],"sourcesContent":["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 { addTonConnectExtension } from '../tonConnect/addTonConnectExtension';\n"],"mappings":";;;;;AAOA,qBAAqBA,MAAaC,QAAe"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
|
|
2
|
+
let _ton_ton = require("@ton/ton");
|
|
3
|
+
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
4
|
+
let _tonconnect_sdk = require("@tonconnect/sdk");
|
|
5
|
+
|
|
6
|
+
//#region package.json
|
|
7
|
+
var name = "@dynamic-labs-sdk/ton";
|
|
8
|
+
var version = "0.23.1";
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/utils/createTonClient/createTonClient.ts
|
|
12
|
+
/** @not-instrumented */
|
|
13
|
+
const createTonClient = ({ rpcUrl }) => new _ton_ton.TonClient({ endpoint: rpcUrl });
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/utils/fetchTonBalance/fetchTonBalance.ts
|
|
17
|
+
/** @not-instrumented */
|
|
18
|
+
const fetchTonBalance = async ({ address, client }) => {
|
|
19
|
+
try {
|
|
20
|
+
return (0, _ton_ton.fromNano)(await client.getBalance(_ton_ton.Address.parse(address)));
|
|
21
|
+
} catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/utils/createTonNetworkProvider/createTonNetworkProvider.ts
|
|
28
|
+
/** @not-instrumented */
|
|
29
|
+
const createTonNetworkProvider = (networkData) => ({
|
|
30
|
+
...(0, _dynamic_labs_sdk_client_core.createBaseNetworkProvider)("TON", networkData),
|
|
31
|
+
getBalance: async ({ address }) => ({ balance: await fetchTonBalance({
|
|
32
|
+
address,
|
|
33
|
+
client: createTonClient({ rpcUrl: networkData.rpcUrls.http[0] })
|
|
34
|
+
}) })
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/registerTonNetworkProviderBuilder/registerTonNetworkProviderBuilder.ts
|
|
39
|
+
/** @not-instrumented */
|
|
40
|
+
const registerTonNetworkProviderBuilder = (client) => {
|
|
41
|
+
const networkProviderBuilderRegistry = (0, _dynamic_labs_sdk_client_core.getNetworkProviderBuilderRegistry)(client);
|
|
42
|
+
if (networkProviderBuilderRegistry.get().get("TON")) return;
|
|
43
|
+
networkProviderBuilderRegistry.register({
|
|
44
|
+
builder: createTonNetworkProvider,
|
|
45
|
+
chain: "TON"
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/utils/constants.ts
|
|
51
|
+
const DEFAULT_TIMEOUT = 60;
|
|
52
|
+
const DEFAULT_JETTON_GAS = BigInt(5e7);
|
|
53
|
+
const NANOTON_PER_TON = BigInt(1e9);
|
|
54
|
+
const TON_PROOF_PREFIX = "ton-proof-item-v2/";
|
|
55
|
+
const TON_CONNECT_PREFIX = "ton-connect";
|
|
56
|
+
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region src/utils/getJettonWalletAddress/getJettonWalletAddress.ts
|
|
59
|
+
/** @not-instrumented */
|
|
60
|
+
const getJettonWalletAddress = async ({ jettonMasterAddress, ownerAddress, client }) => {
|
|
61
|
+
const masterAddress = _ton_ton.Address.parse(jettonMasterAddress);
|
|
62
|
+
const owner = _ton_ton.Address.parse(ownerAddress);
|
|
63
|
+
const ownerCell = (0, _ton_ton.beginCell)().storeAddress(owner).endCell();
|
|
64
|
+
return (await client.runMethod(masterAddress, "get_wallet_address", [{
|
|
65
|
+
cell: ownerCell,
|
|
66
|
+
type: "slice"
|
|
67
|
+
}])).stack.readAddress().toString({
|
|
68
|
+
bounceable: true,
|
|
69
|
+
testOnly: false,
|
|
70
|
+
urlSafe: true
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/utils/prepareJettonTransfer/prepareJettonTransfer.ts
|
|
76
|
+
/** @not-instrumented */
|
|
77
|
+
const prepareJettonTransfer = async ({ walletAddress, jettonMasterAddress, recipientAddress, jettonAmount, forwardTonAmount, client, forwardPayload = "", timeout = DEFAULT_TIMEOUT, gasAmount = DEFAULT_JETTON_GAS, network = _tonconnect_sdk.CHAIN.MAINNET }) => {
|
|
78
|
+
const validUntil = Math.floor(Date.now() / 1e3) + timeout;
|
|
79
|
+
const jettonWalletAddr = _ton_ton.Address.parse(await getJettonWalletAddress({
|
|
80
|
+
client,
|
|
81
|
+
jettonMasterAddress,
|
|
82
|
+
ownerAddress: walletAddress
|
|
83
|
+
}));
|
|
84
|
+
const recipientAddr = _ton_ton.Address.parse(recipientAddress);
|
|
85
|
+
const walletAddr = _ton_ton.Address.parse(walletAddress);
|
|
86
|
+
const isTestnet = network === _tonconnect_sdk.CHAIN.TESTNET;
|
|
87
|
+
const forwardPayloadCell = forwardPayload ? (0, _ton_ton.beginCell)().storeUint(0, 32).storeStringTail(forwardPayload).endCell() : (0, _ton_ton.beginCell)().endCell();
|
|
88
|
+
const jettonTransferBody = (0, _ton_ton.beginCell)().storeUint(260734629, 32).storeUint(0, 64).storeCoins(jettonAmount).storeAddress(recipientAddr).storeAddress(walletAddr).storeBit(0).storeCoins(forwardTonAmount).storeBit(0).storeSlice(forwardPayloadCell.beginParse()).endCell();
|
|
89
|
+
const totalAmount = forwardTonAmount + gasAmount;
|
|
90
|
+
const message = {
|
|
91
|
+
address: jettonWalletAddr.toString({
|
|
92
|
+
bounceable: true,
|
|
93
|
+
testOnly: isTestnet,
|
|
94
|
+
urlSafe: true
|
|
95
|
+
}),
|
|
96
|
+
amount: totalAmount.toString(),
|
|
97
|
+
payload: jettonTransferBody.toBoc().toString("base64")
|
|
98
|
+
};
|
|
99
|
+
return {
|
|
100
|
+
from: walletAddr.toString({
|
|
101
|
+
bounceable: false,
|
|
102
|
+
testOnly: isTestnet,
|
|
103
|
+
urlSafe: true
|
|
104
|
+
}),
|
|
105
|
+
messages: [message],
|
|
106
|
+
network,
|
|
107
|
+
validUntil
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
//#endregion
|
|
112
|
+
//#region src/utils/prepareTonNativeTransfer/prepareTonNativeTransfer.ts
|
|
113
|
+
/** @not-instrumented */
|
|
114
|
+
const prepareTonNativeTransfer = ({ walletAddress, recipient, amountInNanoton, timeout = DEFAULT_TIMEOUT, network = _tonconnect_sdk.CHAIN.MAINNET }) => {
|
|
115
|
+
const validUntil = Math.floor(Date.now() / 1e3) + timeout;
|
|
116
|
+
const recipientAddress = _ton_ton.Address.parse(recipient);
|
|
117
|
+
const walletAddr = _ton_ton.Address.parse(walletAddress);
|
|
118
|
+
const isTestnet = network === _tonconnect_sdk.CHAIN.TESTNET;
|
|
119
|
+
const message = {
|
|
120
|
+
address: recipientAddress.toString({
|
|
121
|
+
bounceable: false,
|
|
122
|
+
testOnly: isTestnet,
|
|
123
|
+
urlSafe: true
|
|
124
|
+
}),
|
|
125
|
+
amount: amountInNanoton
|
|
126
|
+
};
|
|
127
|
+
return {
|
|
128
|
+
from: walletAddr.toString({
|
|
129
|
+
bounceable: false,
|
|
130
|
+
testOnly: isTestnet,
|
|
131
|
+
urlSafe: true
|
|
132
|
+
}),
|
|
133
|
+
messages: [message],
|
|
134
|
+
network,
|
|
135
|
+
validUntil
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/errors/NotTonProviderError.ts
|
|
141
|
+
var NotTonProviderError = class extends _dynamic_labs_sdk_client.BaseError {
|
|
142
|
+
providerKey;
|
|
143
|
+
constructor(params) {
|
|
144
|
+
super({
|
|
145
|
+
cause: null,
|
|
146
|
+
code: "not_ton_provider_error",
|
|
147
|
+
docsUrl: null,
|
|
148
|
+
name: "NotTonProviderError",
|
|
149
|
+
shortMessage: "Provider is not a TON wallet provider"
|
|
150
|
+
});
|
|
151
|
+
this.providerKey = params.providerKey;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
//#endregion
|
|
156
|
+
//#region src/isTonWalletProvider/isTonWalletProvider.ts
|
|
157
|
+
/**
|
|
158
|
+
* Type guard function to check if a wallet provider is a TON wallet provider.
|
|
159
|
+
*
|
|
160
|
+
* @param provider - The wallet provider to check.
|
|
161
|
+
* @returns True if the wallet provider is a TON wallet provider, false otherwise.
|
|
162
|
+
* @not-instrumented
|
|
163
|
+
*/
|
|
164
|
+
const isTonWalletProvider = (provider) => provider.chain === "TON";
|
|
165
|
+
|
|
166
|
+
//#endregion
|
|
167
|
+
//#region src/utils/tonTransferAmount/tonTransferAmount.ts
|
|
168
|
+
const DEFAULT_DECIMALS = 9;
|
|
169
|
+
/** @not-instrumented */
|
|
170
|
+
const tonTransferAmount = async ({ amount, recipient, token, walletAccount }, client) => {
|
|
171
|
+
const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
|
|
172
|
+
if (!isTonWalletProvider(provider)) throw new NotTonProviderError({ providerKey: provider.key });
|
|
173
|
+
if (token) {
|
|
174
|
+
const rawAmount$1 = (0, _dynamic_labs_sdk_client_core.parseAmountToSmallestUnit)({
|
|
175
|
+
amount,
|
|
176
|
+
decimals: token.decimals ?? DEFAULT_DECIMALS
|
|
177
|
+
});
|
|
178
|
+
return provider.sendJetton({
|
|
179
|
+
transaction: {
|
|
180
|
+
amount: rawAmount$1,
|
|
181
|
+
jettonMasterAddress: token.address,
|
|
182
|
+
recipientAddress: recipient
|
|
183
|
+
},
|
|
184
|
+
walletAccount
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
const rawAmount = (0, _dynamic_labs_sdk_client_core.parseAmountToSmallestUnit)({
|
|
188
|
+
amount,
|
|
189
|
+
decimals: DEFAULT_DECIMALS
|
|
190
|
+
});
|
|
191
|
+
return provider.sendTon({
|
|
192
|
+
transaction: {
|
|
193
|
+
amount: rawAmount,
|
|
194
|
+
recipientAddress: recipient
|
|
195
|
+
},
|
|
196
|
+
walletAccount
|
|
197
|
+
});
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
//#endregion
|
|
201
|
+
Object.defineProperty(exports, 'DEFAULT_JETTON_GAS', {
|
|
202
|
+
enumerable: true,
|
|
203
|
+
get: function () {
|
|
204
|
+
return DEFAULT_JETTON_GAS;
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
Object.defineProperty(exports, 'DEFAULT_TIMEOUT', {
|
|
208
|
+
enumerable: true,
|
|
209
|
+
get: function () {
|
|
210
|
+
return DEFAULT_TIMEOUT;
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
Object.defineProperty(exports, 'NANOTON_PER_TON', {
|
|
214
|
+
enumerable: true,
|
|
215
|
+
get: function () {
|
|
216
|
+
return NANOTON_PER_TON;
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
Object.defineProperty(exports, 'NotTonProviderError', {
|
|
220
|
+
enumerable: true,
|
|
221
|
+
get: function () {
|
|
222
|
+
return NotTonProviderError;
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
Object.defineProperty(exports, 'TON_CONNECT_PREFIX', {
|
|
226
|
+
enumerable: true,
|
|
227
|
+
get: function () {
|
|
228
|
+
return TON_CONNECT_PREFIX;
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
Object.defineProperty(exports, 'TON_PROOF_PREFIX', {
|
|
232
|
+
enumerable: true,
|
|
233
|
+
get: function () {
|
|
234
|
+
return TON_PROOF_PREFIX;
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
Object.defineProperty(exports, 'createTonClient', {
|
|
238
|
+
enumerable: true,
|
|
239
|
+
get: function () {
|
|
240
|
+
return createTonClient;
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
Object.defineProperty(exports, 'isTonWalletProvider', {
|
|
244
|
+
enumerable: true,
|
|
245
|
+
get: function () {
|
|
246
|
+
return isTonWalletProvider;
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
Object.defineProperty(exports, 'name', {
|
|
250
|
+
enumerable: true,
|
|
251
|
+
get: function () {
|
|
252
|
+
return name;
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
Object.defineProperty(exports, 'prepareJettonTransfer', {
|
|
256
|
+
enumerable: true,
|
|
257
|
+
get: function () {
|
|
258
|
+
return prepareJettonTransfer;
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
Object.defineProperty(exports, 'prepareTonNativeTransfer', {
|
|
262
|
+
enumerable: true,
|
|
263
|
+
get: function () {
|
|
264
|
+
return prepareTonNativeTransfer;
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
Object.defineProperty(exports, 'registerTonNetworkProviderBuilder', {
|
|
268
|
+
enumerable: true,
|
|
269
|
+
get: function () {
|
|
270
|
+
return registerTonNetworkProviderBuilder;
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
Object.defineProperty(exports, 'tonTransferAmount', {
|
|
274
|
+
enumerable: true,
|
|
275
|
+
get: function () {
|
|
276
|
+
return tonTransferAmount;
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
Object.defineProperty(exports, 'version', {
|
|
280
|
+
enumerable: true,
|
|
281
|
+
get: function () {
|
|
282
|
+
return version;
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
//# sourceMappingURL=tonTransferAmount-BGBBN_12.cjs.js.map
|