@dynamic-labs-sdk/ton 1.12.1 → 1.13.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-Bgs8656r.cjs → addTonConnectExtension-9stqf7f0.cjs} +7 -7
- package/dist/addTonConnectExtension-9stqf7f0.cjs.map +1 -0
- package/dist/{addTonConnectExtension-OkEq0CrO.esm.js → addTonConnectExtension-PyzrvXe0.esm.js} +7 -7
- package/dist/addTonConnectExtension-PyzrvXe0.esm.js.map +1 -0
- package/dist/addTonExtension/addTonExtension.d.ts +1 -1
- package/dist/{addWaasTonExtension-CnMJSnpr.esm.js → addWaasTonExtension-BruzIjXc.esm.js} +18 -18
- package/dist/addWaasTonExtension-BruzIjXc.esm.js.map +1 -0
- package/dist/{addWaasTonExtension-BnU1i2bo.cjs → addWaasTonExtension-m1G_cibh.cjs} +18 -18
- package/dist/addWaasTonExtension-m1G_cibh.cjs.map +1 -0
- package/dist/generateTonConnectProof/generateTonConnectProof.d.ts +1 -1
- package/dist/index.cjs +10 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +10 -10
- package/dist/index.esm.js.map +1 -1
- package/dist/isTonNetworkProvider/isTonNetworkProvider.d.ts +1 -1
- package/dist/isTonWalletAccount/isTonWalletAccount.d.ts +1 -1
- package/dist/isTonWalletProvider/isTonWalletProvider.d.ts +1 -1
- package/dist/registerTonNetworkProviderBuilder/registerTonNetworkProviderBuilder.d.ts +1 -1
- package/dist/registerTonNetworkProviderBuilder/registerTonNetworkProviderBuilder.d.ts.map +1 -1
- package/dist/sendJetton/sendJetton.d.ts +1 -1
- package/dist/sendTon/sendTon.d.ts +1 -1
- package/dist/sendTransaction/sendTransaction.d.ts +1 -1
- package/dist/tonConnect/addTonConnectExtension/addTonConnectExtension.d.ts +1 -1
- package/dist/tonConnect/utils/createDefaultTonConnectUI/createDefaultTonConnectUI.d.ts +1 -1
- package/dist/tonConnect/utils/createWalletProviderFromTonConnect/createWalletProviderFromTonConnect.d.ts +1 -1
- package/dist/tonConnect/utils/discoverAndRegisterWallets/discoverAndRegisterWallets.d.ts +1 -1
- package/dist/tonConnect/utils/extractPublicKeyFromStateInit/extractPublicKeyFromStateInit.d.ts +1 -1
- package/dist/tonConnect.cjs +2 -2
- package/dist/tonConnect.esm.js +2 -2
- package/dist/{tonTransferAmount-DEPv5Y_F.esm.js → tonTransferAmount-CNyAPQ_R.esm.js} +11 -11
- package/dist/tonTransferAmount-CNyAPQ_R.esm.js.map +1 -0
- package/dist/{tonTransferAmount-CNlg-2eU.cjs → tonTransferAmount-DIkfZWiJ.cjs} +11 -11
- package/dist/tonTransferAmount-DIkfZWiJ.cjs.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/convertTonSendTransactionRequest/convertTonSendTransactionRequest.d.ts +1 -1
- package/dist/utils/convertTonSendTransactionRequest/convertTonSendTransactionRequest.d.ts.map +1 -1
- package/dist/utils/convertTonSendTransactionRequest/createInternalMessage/createInternalMessage.d.ts +1 -1
- package/dist/utils/convertTonSendTransactionRequest/createInternalMessage/createInternalMessage.d.ts.map +1 -1
- package/dist/utils/convertTonSendTransactionRequest/createSendMsgAction/createSendMsgAction.d.ts +1 -1
- package/dist/utils/convertTonSendTransactionRequest/createSendMsgAction/createSendMsgAction.d.ts.map +1 -1
- package/dist/utils/convertTonSendTransactionRequest/determineBounceFlag/determineBounceFlag.d.ts +1 -1
- package/dist/utils/convertTonSendTransactionRequest/determineBounceFlag/determineBounceFlag.d.ts.map +1 -1
- package/dist/utils/convertTonSendTransactionRequest/parsePayload/parsePayload.d.ts +1 -1
- package/dist/utils/convertTonSendTransactionRequest/parsePayload/parsePayload.d.ts.map +1 -1
- package/dist/utils/convertTonSendTransactionRequest/parseStateInit/parseStateInit.d.ts +1 -1
- package/dist/utils/convertTonSendTransactionRequest/parseStateInit/parseStateInit.d.ts.map +1 -1
- package/dist/utils/createTonClient/createTonClient.d.ts +1 -1
- package/dist/utils/createTonClient/createTonClient.d.ts.map +1 -1
- package/dist/utils/createTonNetworkProvider/createTonNetworkProvider.d.ts +1 -1
- package/dist/utils/createTonNetworkProvider/createTonNetworkProvider.d.ts.map +1 -1
- package/dist/utils/createTonWalletStateInit/createTonWalletStateInit.d.ts +1 -1
- package/dist/utils/createTonWalletStateInit/createTonWalletStateInit.d.ts.map +1 -1
- package/dist/utils/executeTonTransaction/executeTonTransaction.d.ts +1 -1
- package/dist/utils/executeTonTransaction/executeTonTransaction.d.ts.map +1 -1
- package/dist/utils/fetchTonBalance/fetchTonBalance.d.ts +1 -1
- package/dist/utils/fetchTonBalance/fetchTonBalance.d.ts.map +1 -1
- package/dist/utils/generateTonConnectProofHash/generateTonConnectProofHash.d.ts +1 -1
- package/dist/utils/generateTonConnectProofHash/generateTonConnectProofHash.d.ts.map +1 -1
- package/dist/utils/generateTonConnectProofHash/generateTonConnectProofMessage/generateTonConnectProofMessage.d.ts +1 -1
- package/dist/utils/generateTonConnectProofHash/generateTonConnectProofMessage/generateTonConnectProofMessage.d.ts.map +1 -1
- package/dist/utils/getJettonWalletAddress/getJettonWalletAddress.d.ts +1 -1
- package/dist/utils/getJettonWalletAddress/getJettonWalletAddress.d.ts.map +1 -1
- package/dist/utils/getTonWalletSeqno/getTonWalletSeqno.d.ts +1 -1
- package/dist/utils/getTonWalletSeqno/getTonWalletSeqno.d.ts.map +1 -1
- package/dist/utils/isTonWalletDeployed/isTonWalletDeployed.d.ts +1 -1
- package/dist/utils/isTonWalletDeployed/isTonWalletDeployed.d.ts.map +1 -1
- package/dist/utils/prepareJettonTransfer/prepareJettonTransfer.d.ts +1 -1
- package/dist/utils/prepareJettonTransfer/prepareJettonTransfer.d.ts.map +1 -1
- package/dist/utils/prepareTonNativeTransfer/prepareTonNativeTransfer.d.ts +1 -1
- package/dist/utils/prepareTonNativeTransfer/prepareTonNativeTransfer.d.ts.map +1 -1
- package/dist/utils/prepareTonTransaction/prepareTonTransaction.d.ts +1 -1
- package/dist/utils/prepareTonTransaction/prepareTonTransaction.d.ts.map +1 -1
- package/dist/utils/tonTransferAmount/tonTransferAmount.d.ts +1 -1
- package/dist/utils/tonTransferAmount/tonTransferAmount.d.ts.map +1 -1
- package/dist/waas/addWaasTonExtension/addWaasTonExtension.d.ts +1 -1
- package/dist/waas/utils/createWalletProviderForWaasTon/createWalletProviderForWaasTon.d.ts +1 -1
- package/dist/waas/utils/createWalletProviderForWaasTon/createWalletProviderForWaasTon.d.ts.map +1 -1
- package/dist/waas/utils/getPublicKeyForWalletAccount/getPublicKeyForWalletAccount.d.ts +1 -1
- package/dist/waas.cjs +2 -2
- package/dist/waas.esm.js +2 -2
- package/package.json +3 -3
- package/dist/addTonConnectExtension-Bgs8656r.cjs.map +0 -1
- package/dist/addTonConnectExtension-OkEq0CrO.esm.js.map +0 -1
- package/dist/addWaasTonExtension-BnU1i2bo.cjs.map +0 -1
- package/dist/addWaasTonExtension-CnMJSnpr.esm.js.map +0 -1
- package/dist/tonTransferAmount-CNlg-2eU.cjs.map +0 -1
- package/dist/tonTransferAmount-DEPv5Y_F.esm.js.map +0 -1
|
@@ -12,7 +12,7 @@ type DiscoverAndRegisterWalletsParams = {
|
|
|
12
12
|
* taken from the registry by default; a small override map handles wallets
|
|
13
13
|
* whose registry name would otherwise be too generic (e.g. Telegram Wallet).
|
|
14
14
|
*
|
|
15
|
-
* @
|
|
15
|
+
* @notInstrumented
|
|
16
16
|
*/
|
|
17
17
|
export declare const discoverAndRegisterWallets: ({ client, tonConnectUI, }: DiscoverAndRegisterWalletsParams) => Promise<void>;
|
|
18
18
|
export {};
|
package/dist/tonConnect/utils/extractPublicKeyFromStateInit/extractPublicKeyFromStateInit.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type ExtractPublicKeyFromStateInitParams = {
|
|
|
7
7
|
* Parses the base64-encoded StateInit cell to retrieve the 32-byte public key
|
|
8
8
|
* from the data cell, handling both V5R1 and standard wallet contract layouts.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
10
|
+
* @notInstrumented
|
|
11
11
|
*/
|
|
12
12
|
export declare const extractPublicKeyFromStateInit: ({ stateInitBase64, }: ExtractPublicKeyFromStateInitParams) => string;
|
|
13
13
|
export {};
|
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-DIkfZWiJ.cjs');
|
|
2
|
+
const require_addTonConnectExtension = require('./addTonConnectExtension-9stqf7f0.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-CNyAPQ_R.esm.js";
|
|
2
|
+
import { t as addTonConnectExtension } from "./addTonConnectExtension-PyzrvXe0.esm.js";
|
|
3
3
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
4
4
|
|
|
5
5
|
//#region src/exports/tonConnect.ts
|
|
@@ -5,16 +5,16 @@ 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.13.0";
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region src/utils/createTonClient/createTonClient.ts
|
|
12
|
-
/** @
|
|
12
|
+
/** @notInstrumented */
|
|
13
13
|
const createTonClient = ({ rpcUrl }) => new TonClient({ endpoint: rpcUrl });
|
|
14
14
|
|
|
15
15
|
//#endregion
|
|
16
16
|
//#region src/utils/fetchTonBalance/fetchTonBalance.ts
|
|
17
|
-
/** @
|
|
17
|
+
/** @notInstrumented */
|
|
18
18
|
const fetchTonBalance = async ({ address, client }) => {
|
|
19
19
|
try {
|
|
20
20
|
return fromNano(await client.getBalance(Address.parse(address)));
|
|
@@ -25,7 +25,7 @@ const fetchTonBalance = async ({ address, client }) => {
|
|
|
25
25
|
|
|
26
26
|
//#endregion
|
|
27
27
|
//#region src/utils/createTonNetworkProvider/createTonNetworkProvider.ts
|
|
28
|
-
/** @
|
|
28
|
+
/** @notInstrumented */
|
|
29
29
|
const createTonNetworkProvider = (networkData) => ({
|
|
30
30
|
...createBaseNetworkProvider("TON", networkData),
|
|
31
31
|
getBalance: async ({ address }) => ({ balance: await fetchTonBalance({
|
|
@@ -36,7 +36,7 @@ const createTonNetworkProvider = (networkData) => ({
|
|
|
36
36
|
|
|
37
37
|
//#endregion
|
|
38
38
|
//#region src/registerTonNetworkProviderBuilder/registerTonNetworkProviderBuilder.ts
|
|
39
|
-
/** @
|
|
39
|
+
/** @notInstrumented */
|
|
40
40
|
const registerTonNetworkProviderBuilder = (client) => {
|
|
41
41
|
const networkProviderBuilderRegistry = getNetworkProviderBuilderRegistry(client);
|
|
42
42
|
if (networkProviderBuilderRegistry.get().get("TON")) return;
|
|
@@ -56,7 +56,7 @@ const TON_CONNECT_PREFIX = "ton-connect";
|
|
|
56
56
|
|
|
57
57
|
//#endregion
|
|
58
58
|
//#region src/utils/getJettonWalletAddress/getJettonWalletAddress.ts
|
|
59
|
-
/** @
|
|
59
|
+
/** @notInstrumented */
|
|
60
60
|
const getJettonWalletAddress = async ({ jettonMasterAddress, ownerAddress, client }) => {
|
|
61
61
|
const masterAddress = Address.parse(jettonMasterAddress);
|
|
62
62
|
const owner = Address.parse(ownerAddress);
|
|
@@ -73,7 +73,7 @@ const getJettonWalletAddress = async ({ jettonMasterAddress, ownerAddress, clien
|
|
|
73
73
|
|
|
74
74
|
//#endregion
|
|
75
75
|
//#region src/utils/prepareJettonTransfer/prepareJettonTransfer.ts
|
|
76
|
-
/** @
|
|
76
|
+
/** @notInstrumented */
|
|
77
77
|
const prepareJettonTransfer = async ({ walletAddress, jettonMasterAddress, recipientAddress, jettonAmount, forwardTonAmount, client, forwardPayload = "", timeout = DEFAULT_TIMEOUT, gasAmount = DEFAULT_JETTON_GAS, network = CHAIN.MAINNET }) => {
|
|
78
78
|
const validUntil = Math.floor(Date.now() / 1e3) + timeout;
|
|
79
79
|
const jettonWalletAddr = Address.parse(await getJettonWalletAddress({
|
|
@@ -110,7 +110,7 @@ const prepareJettonTransfer = async ({ walletAddress, jettonMasterAddress, recip
|
|
|
110
110
|
|
|
111
111
|
//#endregion
|
|
112
112
|
//#region src/utils/prepareTonNativeTransfer/prepareTonNativeTransfer.ts
|
|
113
|
-
/** @
|
|
113
|
+
/** @notInstrumented */
|
|
114
114
|
const prepareTonNativeTransfer = ({ walletAddress, recipient, amountInNanoton, timeout = DEFAULT_TIMEOUT, network = CHAIN.MAINNET }) => {
|
|
115
115
|
const validUntil = Math.floor(Date.now() / 1e3) + timeout;
|
|
116
116
|
const recipientAddress = Address.parse(recipient);
|
|
@@ -159,14 +159,14 @@ var NotTonProviderError = class extends BaseError {
|
|
|
159
159
|
*
|
|
160
160
|
* @param provider - The wallet provider to check.
|
|
161
161
|
* @returns True if the wallet provider is a TON wallet provider, false otherwise.
|
|
162
|
-
* @
|
|
162
|
+
* @notInstrumented
|
|
163
163
|
*/
|
|
164
164
|
const isTonWalletProvider = (provider) => provider.chain === "TON";
|
|
165
165
|
|
|
166
166
|
//#endregion
|
|
167
167
|
//#region src/utils/tonTransferAmount/tonTransferAmount.ts
|
|
168
168
|
const DEFAULT_DECIMALS = 9;
|
|
169
|
-
/** @
|
|
169
|
+
/** @notInstrumented */
|
|
170
170
|
const tonTransferAmount = async ({ amount, recipient, token, walletAccount }, client) => {
|
|
171
171
|
const provider = getWalletProviderFromWalletAccount({ walletAccount }, client);
|
|
172
172
|
if (!isTonWalletProvider(provider)) throw new NotTonProviderError({ providerKey: provider.key });
|
|
@@ -199,4 +199,4 @@ const tonTransferAmount = async ({ amount, recipient, token, walletAccount }, cl
|
|
|
199
199
|
|
|
200
200
|
//#endregion
|
|
201
201
|
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-
|
|
202
|
+
//# sourceMappingURL=tonTransferAmount-CNyAPQ_R.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonTransferAmount-CNyAPQ_R.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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"}
|
|
@@ -5,16 +5,16 @@ let _tonconnect_sdk = require("@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.13.0";
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region src/utils/createTonClient/createTonClient.ts
|
|
12
|
-
/** @
|
|
12
|
+
/** @notInstrumented */
|
|
13
13
|
const createTonClient = ({ rpcUrl }) => new _ton_ton.TonClient({ endpoint: rpcUrl });
|
|
14
14
|
|
|
15
15
|
//#endregion
|
|
16
16
|
//#region src/utils/fetchTonBalance/fetchTonBalance.ts
|
|
17
|
-
/** @
|
|
17
|
+
/** @notInstrumented */
|
|
18
18
|
const fetchTonBalance = async ({ address, client }) => {
|
|
19
19
|
try {
|
|
20
20
|
return (0, _ton_ton.fromNano)(await client.getBalance(_ton_ton.Address.parse(address)));
|
|
@@ -25,7 +25,7 @@ const fetchTonBalance = async ({ address, client }) => {
|
|
|
25
25
|
|
|
26
26
|
//#endregion
|
|
27
27
|
//#region src/utils/createTonNetworkProvider/createTonNetworkProvider.ts
|
|
28
|
-
/** @
|
|
28
|
+
/** @notInstrumented */
|
|
29
29
|
const createTonNetworkProvider = (networkData) => ({
|
|
30
30
|
...(0, _dynamic_labs_sdk_client_core.createBaseNetworkProvider)("TON", networkData),
|
|
31
31
|
getBalance: async ({ address }) => ({ balance: await fetchTonBalance({
|
|
@@ -36,7 +36,7 @@ const createTonNetworkProvider = (networkData) => ({
|
|
|
36
36
|
|
|
37
37
|
//#endregion
|
|
38
38
|
//#region src/registerTonNetworkProviderBuilder/registerTonNetworkProviderBuilder.ts
|
|
39
|
-
/** @
|
|
39
|
+
/** @notInstrumented */
|
|
40
40
|
const registerTonNetworkProviderBuilder = (client) => {
|
|
41
41
|
const networkProviderBuilderRegistry = (0, _dynamic_labs_sdk_client_core.getNetworkProviderBuilderRegistry)(client);
|
|
42
42
|
if (networkProviderBuilderRegistry.get().get("TON")) return;
|
|
@@ -56,7 +56,7 @@ const TON_CONNECT_PREFIX = "ton-connect";
|
|
|
56
56
|
|
|
57
57
|
//#endregion
|
|
58
58
|
//#region src/utils/getJettonWalletAddress/getJettonWalletAddress.ts
|
|
59
|
-
/** @
|
|
59
|
+
/** @notInstrumented */
|
|
60
60
|
const getJettonWalletAddress = async ({ jettonMasterAddress, ownerAddress, client }) => {
|
|
61
61
|
const masterAddress = _ton_ton.Address.parse(jettonMasterAddress);
|
|
62
62
|
const owner = _ton_ton.Address.parse(ownerAddress);
|
|
@@ -73,7 +73,7 @@ const getJettonWalletAddress = async ({ jettonMasterAddress, ownerAddress, clien
|
|
|
73
73
|
|
|
74
74
|
//#endregion
|
|
75
75
|
//#region src/utils/prepareJettonTransfer/prepareJettonTransfer.ts
|
|
76
|
-
/** @
|
|
76
|
+
/** @notInstrumented */
|
|
77
77
|
const prepareJettonTransfer = async ({ walletAddress, jettonMasterAddress, recipientAddress, jettonAmount, forwardTonAmount, client, forwardPayload = "", timeout = DEFAULT_TIMEOUT, gasAmount = DEFAULT_JETTON_GAS, network = _tonconnect_sdk.CHAIN.MAINNET }) => {
|
|
78
78
|
const validUntil = Math.floor(Date.now() / 1e3) + timeout;
|
|
79
79
|
const jettonWalletAddr = _ton_ton.Address.parse(await getJettonWalletAddress({
|
|
@@ -110,7 +110,7 @@ const prepareJettonTransfer = async ({ walletAddress, jettonMasterAddress, recip
|
|
|
110
110
|
|
|
111
111
|
//#endregion
|
|
112
112
|
//#region src/utils/prepareTonNativeTransfer/prepareTonNativeTransfer.ts
|
|
113
|
-
/** @
|
|
113
|
+
/** @notInstrumented */
|
|
114
114
|
const prepareTonNativeTransfer = ({ walletAddress, recipient, amountInNanoton, timeout = DEFAULT_TIMEOUT, network = _tonconnect_sdk.CHAIN.MAINNET }) => {
|
|
115
115
|
const validUntil = Math.floor(Date.now() / 1e3) + timeout;
|
|
116
116
|
const recipientAddress = _ton_ton.Address.parse(recipient);
|
|
@@ -159,14 +159,14 @@ var NotTonProviderError = class extends _dynamic_labs_sdk_client.BaseError {
|
|
|
159
159
|
*
|
|
160
160
|
* @param provider - The wallet provider to check.
|
|
161
161
|
* @returns True if the wallet provider is a TON wallet provider, false otherwise.
|
|
162
|
-
* @
|
|
162
|
+
* @notInstrumented
|
|
163
163
|
*/
|
|
164
164
|
const isTonWalletProvider = (provider) => provider.chain === "TON";
|
|
165
165
|
|
|
166
166
|
//#endregion
|
|
167
167
|
//#region src/utils/tonTransferAmount/tonTransferAmount.ts
|
|
168
168
|
const DEFAULT_DECIMALS = 9;
|
|
169
|
-
/** @
|
|
169
|
+
/** @notInstrumented */
|
|
170
170
|
const tonTransferAmount = async ({ amount, recipient, token, walletAccount }, client) => {
|
|
171
171
|
const provider = (0, _dynamic_labs_sdk_client_core.getWalletProviderFromWalletAccount)({ walletAccount }, client);
|
|
172
172
|
if (!isTonWalletProvider(provider)) throw new NotTonProviderError({ providerKey: provider.key });
|
|
@@ -282,4 +282,4 @@ Object.defineProperty(exports, 'version', {
|
|
|
282
282
|
return version;
|
|
283
283
|
}
|
|
284
284
|
});
|
|
285
|
-
//# sourceMappingURL=tonTransferAmount-
|
|
285
|
+
//# sourceMappingURL=tonTransferAmount-DIkfZWiJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonTransferAmount-DIkfZWiJ.cjs","names":["TonClient","Address","Address","CHAIN","Address","CHAIN","Address","BaseError","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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"}
|