@tonappchain/sdk 0.7.3-rc3 → 0.7.3-rc4
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/src/assets/NFT.js
CHANGED
|
@@ -150,7 +150,7 @@ class NFT {
|
|
|
150
150
|
return new NFT(this._addresses, this.origin, this._configuration, this.feeMode);
|
|
151
151
|
}
|
|
152
152
|
static resolveFeeMode(origin) {
|
|
153
|
-
return origin === Struct_1.Origin.TAC ? Struct_1.AssetFeeMode.TAC_ORIGINAL : Struct_1.AssetFeeMode.
|
|
153
|
+
return origin === Struct_1.Origin.TAC ? Struct_1.AssetFeeMode.TAC_ORIGINAL : Struct_1.AssetFeeMode.LEGACY;
|
|
154
154
|
}
|
|
155
155
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
156
156
|
withAmount(_amount) {
|
package/dist/src/sdk/Consts.d.ts
CHANGED
|
@@ -9,8 +9,12 @@ export declare const LEGACY_JETTON_WALLET_GAS_CONSUMPTION_COUNT = 2n;
|
|
|
9
9
|
export declare const LEGACY_JETTON_TRANSFER_BASE_OUTBOUND_MESSAGE_COUNT = 1n;
|
|
10
10
|
export declare const LEGACY_JETTON_TRANSFER_WITH_FORWARD_OUTBOUND_MESSAGE_COUNT = 2n;
|
|
11
11
|
export declare const LEGACY_JETTON_WALLET_TRANSFER_GAS_AND_STORAGE: bigint;
|
|
12
|
+
export declare const LEGACY_NFT_ITEM_MIN_TONS_FOR_STORAGE = 50000000n;
|
|
13
|
+
export declare const LEGACY_NFT_TRANSFER_BASE_OUTBOUND_MESSAGE_COUNT = 1n;
|
|
14
|
+
export declare const LEGACY_NFT_TRANSFER_WITH_FORWARD_OUTBOUND_MESSAGE_COUNT = 2n;
|
|
12
15
|
export declare const USDT_JETTON_WALLET_CODE_HASH = "89468f02c78e570802e39979c8516fc38df07ea76a48357e0536f2ba7b3ee37b";
|
|
13
16
|
export declare const DYNAMIC_JETTON_WALLET_CODE_HASHES: string[];
|
|
17
|
+
export declare const FIXED_POINT_SHIFT: number;
|
|
14
18
|
export declare const MAX_ITERATION_COUNT = 120;
|
|
15
19
|
export declare const DEFAULT_DELAY = 0;
|
|
16
20
|
export declare const SOLIDITY_SIGNATURE_REGEX: RegExp;
|
package/dist/src/sdk/Consts.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CROSS_CHAIN_MESSAGE_VERSION_V1 = exports.IGNORE_MSG_VALUE_1_NANO = exports.DEFAULT_RETRY_ON_NOT_FOUND_DELAY_MS = exports.DEFAULT_RETRY_ON_NOT_FOUND_RETRIES = exports.DEFAULT_RETRY_ON_NOT_FOUND = exports.DEFAULT_FIND_TX_MAX_DEPTH = exports.DEFAULT_FIND_TX_ARCHIVAL = exports.DEFAULT_MAX_SCANNED_TRANSACTIONS = exports.DEFAULT_FIND_TX_LIMIT = exports.DEFAULT_WAIT_DELAY_MS = exports.DEFAULT_WAIT_MAX_ATTEMPTS = exports.DEFAULT_WAIT_TIMEOUT_MS = exports.DEFAULT_RETRY_BACKOFF_MULTIPLIER = exports.DEFAULT_RETRY_MAX_DELAY_MS = exports.DEFAULT_RETRY_DELAY_MS = exports.DEFAULT_RETRY_MAX_COUNT = exports.DEFAULT_HTTP_CLIENT_TIMEOUT_MS = exports.TON_BURN_ADDRESS = exports.MINUTE = exports.FIVE_MINUTES = exports.TAC_DECIMALS = exports.TON_DECIMALS = exports.ONE_YEAR_SECONDS = exports.FIFTEEN_MINUTES = exports.TAC_SYMBOL = exports.TON_SYMBOL = exports.MAX_MSG_DEPTH = exports.MAX_HIGHLOAD_GROUP_MSG_NUM = exports.MAX_EXT_MSG_SIZE = exports.SOLIDITY_METHOD_NAME_REGEX = exports.SOLIDITY_SIGNATURE_REGEX = exports.DEFAULT_DELAY = exports.MAX_ITERATION_COUNT = exports.FIXED_POINT_SHIFT = exports.DYNAMIC_JETTON_WALLET_CODE_HASHES = exports.USDT_JETTON_WALLET_CODE_HASH = exports.LEGACY_NFT_TRANSFER_WITH_FORWARD_OUTBOUND_MESSAGE_COUNT = exports.LEGACY_NFT_TRANSFER_BASE_OUTBOUND_MESSAGE_COUNT = exports.LEGACY_NFT_ITEM_MIN_TONS_FOR_STORAGE = exports.LEGACY_JETTON_WALLET_TRANSFER_GAS_AND_STORAGE = exports.LEGACY_JETTON_TRANSFER_WITH_FORWARD_OUTBOUND_MESSAGE_COUNT = exports.LEGACY_JETTON_TRANSFER_BASE_OUTBOUND_MESSAGE_COUNT = exports.LEGACY_JETTON_WALLET_GAS_CONSUMPTION_COUNT = exports.LEGACY_JETTON_WALLET_GAS_CONSUMPTION = exports.LEGACY_JETTON_WALLET_MIN_TONS_FOR_STORAGE = exports.LEGACY_STRICTLY_GREATER_THAN_FEE_EPSILON = exports.LEGACY_FORWARD_FEE_ESTIMATE_DENOMINATOR = exports.LEGACY_FORWARD_FEE_ESTIMATE_NUMERATOR = exports.NFT_TRANSFER_FORWARD_TON_AMOUNT = exports.JETTON_TRANSFER_FORWARD_TON_AMOUNT = void 0;
|
|
4
|
+
exports.IGNORE_OPCODE = exports.SHARDS_KEY_RANDOM_RANGE = exports.DEFAULT_EIP1559_PRIORITY_FEE = exports.NFT_BRIDGE_AMOUNT = void 0;
|
|
4
5
|
const ton_1 = require("@ton/ton");
|
|
5
6
|
exports.JETTON_TRANSFER_FORWARD_TON_AMOUNT = (0, ton_1.toNano)(0.2);
|
|
6
7
|
exports.NFT_TRANSFER_FORWARD_TON_AMOUNT = (0, ton_1.toNano)(0.3);
|
|
@@ -14,8 +15,12 @@ exports.LEGACY_JETTON_TRANSFER_BASE_OUTBOUND_MESSAGE_COUNT = 1n;
|
|
|
14
15
|
exports.LEGACY_JETTON_TRANSFER_WITH_FORWARD_OUTBOUND_MESSAGE_COUNT = 2n;
|
|
15
16
|
exports.LEGACY_JETTON_WALLET_TRANSFER_GAS_AND_STORAGE = exports.LEGACY_JETTON_WALLET_GAS_CONSUMPTION_COUNT * exports.LEGACY_JETTON_WALLET_GAS_CONSUMPTION +
|
|
16
17
|
exports.LEGACY_JETTON_WALLET_MIN_TONS_FOR_STORAGE;
|
|
18
|
+
exports.LEGACY_NFT_ITEM_MIN_TONS_FOR_STORAGE = 50000000n;
|
|
19
|
+
exports.LEGACY_NFT_TRANSFER_BASE_OUTBOUND_MESSAGE_COUNT = 1n;
|
|
20
|
+
exports.LEGACY_NFT_TRANSFER_WITH_FORWARD_OUTBOUND_MESSAGE_COUNT = 2n;
|
|
17
21
|
exports.USDT_JETTON_WALLET_CODE_HASH = '89468f02c78e570802e39979c8516fc38df07ea76a48357e0536f2ba7b3ee37b';
|
|
18
22
|
exports.DYNAMIC_JETTON_WALLET_CODE_HASHES = [exports.USDT_JETTON_WALLET_CODE_HASH];
|
|
23
|
+
exports.FIXED_POINT_SHIFT = 2 ** 16;
|
|
19
24
|
exports.MAX_ITERATION_COUNT = 120;
|
|
20
25
|
exports.DEFAULT_DELAY = 0;
|
|
21
26
|
exports.SOLIDITY_SIGNATURE_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*(\((bytes,bytes)\))?$/;
|
package/dist/src/sdk/Fees.d.ts
CHANGED
package/dist/src/sdk/Fees.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createNftItemErrorNotificationStep = exports.createNftProxyErrorNotificationStep = exports.createMintAfterErrorGasStep = exports.createEstimatedReceiveTransferGasStep = exports.createEstimatedSendTransferGasStep = exports.createErrorNotificationGasStep = exports.createNftProxyOwnershipAssignedStep = exports.createNftItemBurnStep = exports.createNftItemSendStep = exports.createJettonMinterBurnNotificationStep = exports.createJettonProxyOwnershipAssignedStep = exports.createJettonWalletBurnStep = exports.createJettonWalletReceiveStep = exports.createJettonWalletInternalTransferStep = exports.createCrossChainLayerTvmMsgToEvmStep = exports.DEFAULT_CONTRACT_FEE_USAGE_PARAMS =
|
|
3
|
+
exports.createNftItemErrorNotificationStep = exports.createNftProxyErrorNotificationStep = exports.createMintAfterErrorGasStep = exports.createEstimatedReceiveTransferGasStep = exports.createEstimatedSendTransferGasStep = exports.createErrorNotificationGasStep = exports.createNftProxyOwnershipAssignedStep = exports.createNftItemBurnStep = exports.createNftItemSendStep = exports.createJettonMinterBurnNotificationStep = exports.createJettonProxyOwnershipAssignedStep = exports.createJettonWalletBurnStep = exports.createJettonWalletReceiveStep = exports.createJettonWalletInternalTransferStep = exports.createCrossChainLayerTvmMsgToEvmStep = exports.DEFAULT_CONTRACT_FEE_USAGE_PARAMS = void 0;
|
|
4
4
|
const Consts_1 = require("./Consts");
|
|
5
|
-
exports.FIXED_POINT_SHIFT = 2 ** 16;
|
|
6
5
|
/**
|
|
7
6
|
* Default contract fee usage parameters used as fallback.
|
|
8
7
|
*/
|
|
@@ -15,6 +15,8 @@ export declare class Simulator implements ISimulator {
|
|
|
15
15
|
private calculateTONCrosschainFee;
|
|
16
16
|
private calculateJettonTransferCrosschainFee;
|
|
17
17
|
private calculateLegacyJettonTransferCrosschainFee;
|
|
18
|
+
private calculateLegacyNftTransferNetworkFee;
|
|
19
|
+
private calculateLegacyNftTransferCrosschainFee;
|
|
18
20
|
private calculateJettonBurnCrosschainFee;
|
|
19
21
|
private calculateNftTransferCrosschainFee;
|
|
20
22
|
private calculateNftBurnCrosschainFee;
|
|
@@ -80,15 +80,15 @@ class Simulator {
|
|
|
80
80
|
// Gas and computation
|
|
81
81
|
gasUsed, accountBitPrice, accountCellPrice, lumpPrice, gasPrice, firstFrac, ihrPriceFactor, msgBitPrice, msgCellPrice, }) {
|
|
82
82
|
// Storage Fee (nanotons)
|
|
83
|
-
const storageFee = Math.ceil(((accountBits * accountBitPrice + accountCells * accountCellPrice) * timeDelta) /
|
|
83
|
+
const storageFee = Math.ceil(((accountBits * accountBitPrice + accountCells * accountCellPrice) * timeDelta) / Consts_1.FIXED_POINT_SHIFT);
|
|
84
84
|
// Computation Fee (nanotons)
|
|
85
|
-
const computeFee = (gasUsed * gasPrice) /
|
|
85
|
+
const computeFee = (gasUsed * gasPrice) / Consts_1.FIXED_POINT_SHIFT;
|
|
86
86
|
// Forwarding Fee (nanotons)
|
|
87
|
-
const msgFwdFees = lumpPrice + Math.ceil((msgBitPrice * msgBits + msgCellPrice * msgCells) /
|
|
88
|
-
const ihrFwdFees = Math.ceil((msgFwdFees * ihrPriceFactor) /
|
|
87
|
+
const msgFwdFees = lumpPrice + Math.ceil((msgBitPrice * msgBits + msgCellPrice * msgCells) / Consts_1.FIXED_POINT_SHIFT);
|
|
88
|
+
const ihrFwdFees = Math.ceil((msgFwdFees * ihrPriceFactor) / Consts_1.FIXED_POINT_SHIFT);
|
|
89
89
|
const totalFwdFees = msgFwdFees + ihrFwdFees;
|
|
90
90
|
// Action Fee (nanotons)
|
|
91
|
-
const actionFee = Math.floor((msgFwdFees * firstFrac) /
|
|
91
|
+
const actionFee = Math.floor((msgFwdFees * firstFrac) / Consts_1.FIXED_POINT_SHIFT);
|
|
92
92
|
// Combine all fees
|
|
93
93
|
const totalFees = storageFee + computeFee + actionFee + totalFwdFees;
|
|
94
94
|
return BigInt(Math.ceil(totalFees));
|
|
@@ -98,7 +98,7 @@ class Simulator {
|
|
|
98
98
|
}
|
|
99
99
|
calculateMessageForwardFee(msgBits, msgCells) {
|
|
100
100
|
const { lumpPrice, msgBitPrice, msgCellPrice } = this.config.TONParams.feesParams;
|
|
101
|
-
const msgFwdFees = lumpPrice + Math.ceil((msgBitPrice * msgBits + msgCellPrice * msgCells) /
|
|
101
|
+
const msgFwdFees = lumpPrice + Math.ceil((msgBitPrice * msgBits + msgCellPrice * msgCells) / Consts_1.FIXED_POINT_SHIFT);
|
|
102
102
|
return BigInt(msgFwdFees);
|
|
103
103
|
}
|
|
104
104
|
calculateLegacyJettonTransferNetworkFee(params, msgBits, msgCells) {
|
|
@@ -135,6 +135,22 @@ class Simulator {
|
|
|
135
135
|
const legacyNetworkFee = this.calculateLegacyJettonTransferNetworkFee(params, msgBits, msgCells);
|
|
136
136
|
return dynamicFee > legacyNetworkFee ? dynamicFee : legacyNetworkFee;
|
|
137
137
|
}
|
|
138
|
+
calculateLegacyNftTransferNetworkFee(params, msgBits, msgCells) {
|
|
139
|
+
const forwardTonAmount = Consts_1.NFT_TRANSFER_FORWARD_TON_AMOUNT +
|
|
140
|
+
(params.forwardFeeTonAmount ?? 0n) +
|
|
141
|
+
(params.crossChainTonAmount ?? 0n);
|
|
142
|
+
const outboundMessageCount = forwardTonAmount > 0n
|
|
143
|
+
? Consts_1.LEGACY_NFT_TRANSFER_WITH_FORWARD_OUTBOUND_MESSAGE_COUNT
|
|
144
|
+
: Consts_1.LEGACY_NFT_TRANSFER_BASE_OUTBOUND_MESSAGE_COUNT;
|
|
145
|
+
const inboundForwardFee = (this.calculateMessageForwardFee(msgBits, msgCells) * Consts_1.LEGACY_FORWARD_FEE_ESTIMATE_NUMERATOR) /
|
|
146
|
+
Consts_1.LEGACY_FORWARD_FEE_ESTIMATE_DENOMINATOR;
|
|
147
|
+
return outboundMessageCount * inboundForwardFee + Consts_1.LEGACY_NFT_ITEM_MIN_TONS_FOR_STORAGE;
|
|
148
|
+
}
|
|
149
|
+
calculateLegacyNftTransferCrosschainFee(params, msgBits, msgCells) {
|
|
150
|
+
const dynamicFee = this.calculateNftTransferCrosschainFee(msgBits, msgCells);
|
|
151
|
+
const legacyNetworkFee = this.calculateLegacyNftTransferNetworkFee(params, msgBits, msgCells);
|
|
152
|
+
return dynamicFee > legacyNetworkFee ? dynamicFee : legacyNetworkFee;
|
|
153
|
+
}
|
|
138
154
|
calculateJettonBurnCrosschainFee(msgBits, msgCells) {
|
|
139
155
|
return this.calculateTransactionPipeline([
|
|
140
156
|
(0, Fees_1.createJettonWalletBurnStep)(this.config.TONParams.contractFeeUsageParams, msgBits, msgCells),
|
|
@@ -184,6 +200,9 @@ class Simulator {
|
|
|
184
200
|
case Struct_1.AssetType.NFT:
|
|
185
201
|
if (asset.origin === Struct_1.Origin.TON) {
|
|
186
202
|
// Pipeline: wallet -> nft item -> nft proxy -> ccl -> log
|
|
203
|
+
if (asset.feeMode === Struct_1.AssetFeeMode.LEGACY) {
|
|
204
|
+
return this.calculateLegacyNftTransferCrosschainFee(params, msgBits, msgCells);
|
|
205
|
+
}
|
|
187
206
|
return this.calculateNftTransferCrosschainFee(msgBits, msgCells);
|
|
188
207
|
}
|
|
189
208
|
if (asset.origin === Struct_1.Origin.TAC) {
|