@tonappchain/sdk 0.7.0-rc9 → 0.7.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/LICENSE +20 -20
- package/README.md +198 -191
- package/dist/artifacts/dev/index.d.ts +9 -0
- package/dist/artifacts/dev/index.js +52 -0
- package/dist/artifacts/dev/tac/addresses.d.ts +4 -0
- package/dist/artifacts/dev/tac/addresses.js +8 -0
- package/dist/artifacts/dev/tac/artifacts.d.ts +330 -0
- package/dist/artifacts/dev/tac/artifacts.js +26 -0
- package/dist/artifacts/dev/tac/endpoints.d.ts +2 -0
- package/dist/artifacts/dev/tac/endpoints.js +5 -0
- package/dist/artifacts/dev/tac/index.d.ts +6 -0
- package/dist/artifacts/dev/tac/index.js +43 -0
- package/dist/artifacts/dev/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
- package/dist/artifacts/dev/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
- package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.d.ts +4 -0
- package/dist/artifacts/dev/tac/internal/scripts/utils/encoding.js +18 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/common.d.ts +50 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/common.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
- package/dist/artifacts/dev/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
- package/dist/artifacts/dev/tac/multicall.d.ts +1 -0
- package/dist/artifacts/dev/tac/multicall.js +22 -0
- package/dist/artifacts/dev/tac/structs.d.ts +1 -0
- package/dist/artifacts/dev/tac/structs.js +2 -0
- package/dist/artifacts/dev/tac/utils.d.ts +1 -0
- package/dist/artifacts/dev/tac/utils.js +5 -0
- package/dist/artifacts/dev/tac/wrappers.d.ts +9 -0
- package/dist/artifacts/dev/tac/wrappers.js +2 -0
- package/dist/artifacts/dev/ton/addresses.d.ts +1 -0
- package/dist/artifacts/dev/ton/addresses.js +5 -0
- package/dist/artifacts/dev/ton/artifacts.d.ts +47 -0
- package/dist/artifacts/dev/ton/artifacts.js +26 -0
- package/dist/artifacts/dev/ton/endpoints.d.ts +3 -0
- package/dist/artifacts/dev/ton/endpoints.js +6 -0
- package/dist/artifacts/dev/ton/index.d.ts +3 -0
- package/dist/artifacts/dev/ton/index.js +40 -0
- package/dist/artifacts/dev/ton/internal/build/CrossChainLayer.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/build/Executor.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/build/JettonMinter.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/build/JettonProxy.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/build/JettonWallet.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/build/NFTCollection.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/build/NFTItem.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/build/NFTProxy.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/build/Settings.compiled.json +1 -0
- package/dist/artifacts/dev/ton/internal/wrappers/Constants.d.ts +56 -0
- package/dist/artifacts/dev/ton/internal/wrappers/Constants.js +62 -0
- package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
- package/dist/artifacts/dev/ton/internal/wrappers/CrossChainLayer.js +336 -0
- package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.d.ts +94 -0
- package/dist/artifacts/dev/ton/internal/wrappers/JettonMinter.js +202 -0
- package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.d.ts +80 -0
- package/dist/artifacts/dev/ton/internal/wrappers/JettonProxy.js +158 -0
- package/dist/{wrappers → artifacts/dev/ton/internal/wrappers}/JettonWallet.d.ts +52 -13
- package/dist/artifacts/dev/ton/internal/wrappers/JettonWallet.js +193 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.d.ts +75 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTCollection.js +151 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.d.ts +82 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTItem.js +148 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.d.ts +84 -0
- package/dist/artifacts/dev/ton/internal/wrappers/NFTProxy.js +157 -0
- package/dist/artifacts/dev/ton/internal/wrappers/Settings.d.ts +80 -0
- package/dist/artifacts/dev/ton/internal/wrappers/Settings.js +152 -0
- package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
- package/dist/artifacts/dev/ton/internal/wrappers/utils/GasUtils.js +291 -0
- package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
- package/dist/artifacts/dev/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
- package/dist/artifacts/dev/ton/wrappers.d.ts +8 -0
- package/dist/artifacts/dev/ton/wrappers.js +27 -0
- package/dist/artifacts/index.d.ts +3 -0
- package/dist/artifacts/index.js +39 -0
- package/dist/artifacts/mainnet/index.d.ts +9 -0
- package/dist/artifacts/mainnet/index.js +52 -0
- package/dist/artifacts/mainnet/tac/addresses.d.ts +4 -0
- package/dist/artifacts/mainnet/tac/addresses.js +7 -0
- package/dist/artifacts/mainnet/tac/artifacts.d.ts +330 -0
- package/dist/artifacts/mainnet/tac/artifacts.js +26 -0
- package/dist/artifacts/mainnet/tac/endpoints.d.ts +2 -0
- package/dist/artifacts/mainnet/tac/endpoints.js +5 -0
- package/dist/artifacts/mainnet/tac/index.d.ts +6 -0
- package/dist/artifacts/mainnet/tac/index.js +43 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
- package/dist/artifacts/mainnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
- package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.d.ts +4 -0
- package/dist/artifacts/mainnet/tac/internal/scripts/utils/encoding.js +18 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/common.d.ts +50 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/common.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
- package/dist/artifacts/mainnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
- package/dist/artifacts/mainnet/tac/multicall.d.ts +1 -0
- package/dist/artifacts/mainnet/tac/multicall.js +22 -0
- package/dist/artifacts/mainnet/tac/structs.d.ts +1 -0
- package/dist/artifacts/mainnet/tac/structs.js +2 -0
- package/dist/artifacts/mainnet/tac/utils.d.ts +1 -0
- package/dist/artifacts/mainnet/tac/utils.js +5 -0
- package/dist/artifacts/mainnet/tac/wrappers.d.ts +9 -0
- package/dist/artifacts/mainnet/tac/wrappers.js +2 -0
- package/dist/artifacts/mainnet/ton/addresses.d.ts +1 -0
- package/dist/artifacts/mainnet/ton/addresses.js +4 -0
- package/dist/artifacts/mainnet/ton/artifacts.d.ts +47 -0
- package/dist/artifacts/mainnet/ton/artifacts.js +26 -0
- package/dist/artifacts/mainnet/ton/endpoints.d.ts +3 -0
- package/dist/artifacts/mainnet/ton/endpoints.js +6 -0
- package/dist/artifacts/mainnet/ton/index.d.ts +3 -0
- package/dist/artifacts/mainnet/ton/index.js +40 -0
- package/dist/artifacts/mainnet/ton/internal/build/CrossChainLayer.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/build/Executor.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/build/JettonMinter.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/build/JettonProxy.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/build/JettonWallet.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/build/NFTCollection.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/build/NFTItem.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/build/NFTProxy.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/build/Settings.compiled.json +1 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.d.ts +56 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/Constants.js +62 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/CrossChainLayer.js +336 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.d.ts +94 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/JettonMinter.js +202 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.d.ts +80 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/JettonProxy.js +158 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.d.ts +95 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/JettonWallet.js +193 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.d.ts +75 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.js +151 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.d.ts +82 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/NFTItem.js +148 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.d.ts +84 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/NFTProxy.js +157 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.d.ts +80 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/Settings.js +152 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/utils/GasUtils.js +291 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
- package/dist/artifacts/mainnet/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
- package/dist/artifacts/mainnet/ton/wrappers.d.ts +8 -0
- package/dist/artifacts/mainnet/ton/wrappers.js +27 -0
- package/dist/artifacts/tacTypes.d.ts +13 -0
- package/dist/artifacts/tacTypes.js +2 -0
- package/dist/artifacts/testnet/index.d.ts +9 -0
- package/dist/artifacts/testnet/index.js +52 -0
- package/dist/artifacts/testnet/tac/addresses.d.ts +4 -0
- package/dist/artifacts/testnet/tac/addresses.js +7 -0
- package/dist/artifacts/testnet/tac/artifacts.d.ts +330 -0
- package/dist/artifacts/testnet/tac/artifacts.js +26 -0
- package/dist/artifacts/testnet/tac/endpoints.d.ts +2 -0
- package/dist/artifacts/testnet/tac/endpoints.js +5 -0
- package/dist/artifacts/testnet/tac/index.d.ts +6 -0
- package/dist/artifacts/testnet/tac/index.js +43 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +296 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/core/Structs.sol/IStructsInterface.json +1087 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ICrossChainLayer.sol/ICrossChainLayer.json +114 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ISettings.sol/ISettings.json +194 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/ITokenUtils.sol/ITokenUtils.json +164 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC20.sol/ICrossChainLayerERC20.json +278 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/ICrossChainLayerERC721.sol/ICrossChainLayerERC721.json +380 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/interfaces/tokens/IERC20WithDecimals.sol/IERC20WithDecimals.json +207 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ISAFactory.sol/ISAFactory.json +103 -0
- package/dist/artifacts/testnet/tac/internal/artifacts/contracts/smart-account/interfaces/ITacSmartAccount.sol/ITacSmartAccount.json +181 -0
- package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.d.ts +4 -0
- package/dist/artifacts/testnet/tac/internal/scripts/utils/encoding.js +18 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.d.ts +199 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/common.d.ts +50 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/common.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.d.ts +356 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/core/Structs.sol/IStructsInterface.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.d.ts +75 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ICrossChainLayer.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.d.ts +123 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ISettings.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.d.ts +99 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/ITokenUtils.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.d.ts +182 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC20.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.d.ts +244 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/ICrossChainLayerERC721.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.d.ts +133 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/interfaces/tokens/IERC20WithDecimals.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.d.ts +77 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ISAFactory.js +2 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.d.ts +127 -0
- package/dist/artifacts/testnet/tac/internal/typechain-types/contracts/smart-account/interfaces/ITacSmartAccount.js +2 -0
- package/dist/artifacts/testnet/tac/multicall.d.ts +1 -0
- package/dist/artifacts/testnet/tac/multicall.js +22 -0
- package/dist/artifacts/testnet/tac/structs.d.ts +1 -0
- package/dist/artifacts/testnet/tac/structs.js +2 -0
- package/dist/artifacts/testnet/tac/utils.d.ts +1 -0
- package/dist/artifacts/testnet/tac/utils.js +5 -0
- package/dist/artifacts/testnet/tac/wrappers.d.ts +9 -0
- package/dist/artifacts/testnet/tac/wrappers.js +2 -0
- package/dist/artifacts/testnet/ton/addresses.d.ts +1 -0
- package/dist/artifacts/testnet/ton/addresses.js +4 -0
- package/dist/artifacts/testnet/ton/artifacts.d.ts +47 -0
- package/dist/artifacts/testnet/ton/artifacts.js +26 -0
- package/dist/artifacts/testnet/ton/endpoints.d.ts +3 -0
- package/dist/artifacts/testnet/ton/endpoints.js +6 -0
- package/dist/artifacts/testnet/ton/index.d.ts +3 -0
- package/dist/artifacts/testnet/ton/index.js +40 -0
- package/dist/artifacts/testnet/ton/internal/build/CrossChainLayer.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/build/Executor.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/build/JettonMinter.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/build/JettonProxy.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/build/JettonWallet.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/build/NFTCollection.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/build/NFTItem.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/build/NFTProxy.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/build/Settings.compiled.json +1 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/Constants.d.ts +56 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/Constants.js +62 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.d.ts +164 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/CrossChainLayer.js +336 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.d.ts +94 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonMinter.js +202 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.d.ts +80 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonProxy.js +158 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.d.ts +95 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/JettonWallet.js +193 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +75 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.js +151 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.d.ts +82 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTItem.js +148 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.d.ts +84 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTProxy.js +157 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/Settings.d.ts +80 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/Settings.js +152 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.d.ts +79 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/GasUtils.js +291 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.d.ts +7 -0
- package/dist/artifacts/testnet/ton/internal/wrappers/utils/MerkleRoots.js +27 -0
- package/dist/artifacts/testnet/ton/wrappers.d.ts +8 -0
- package/dist/artifacts/testnet/ton/wrappers.js +27 -0
- package/dist/artifacts/tonTypes.d.ts +20 -0
- package/dist/artifacts/tonTypes.js +2 -0
- package/dist/{adapters → src/adapters}/contractOpener.d.ts +2 -1
- package/dist/{adapters → src/adapters}/contractOpener.js +39 -6
- package/dist/src/adapters/index.d.ts +2 -0
- package/dist/src/adapters/index.js +18 -0
- package/dist/{adapters → src/adapters}/retryableContractOpener.d.ts +6 -3
- package/dist/{adapters → src/adapters}/retryableContractOpener.js +10 -11
- package/dist/src/agnosticSdk/AbiHandler.d.ts +27 -0
- package/dist/src/agnosticSdk/AbiHandler.js +137 -0
- package/dist/src/agnosticSdk/AgnosticSdk.d.ts +201 -0
- package/dist/src/agnosticSdk/AgnosticSdk.js +201 -0
- package/dist/src/agnosticSdk/AgnosticStructs.d.ts +108 -0
- package/dist/src/agnosticSdk/AgnosticStructs.js +23 -0
- package/dist/src/agnosticSdk/DebugHelpers.d.ts +88 -0
- package/dist/src/agnosticSdk/DebugHelpers.js +274 -0
- package/dist/src/agnosticSdk/HooksHandler.d.ts +43 -0
- package/dist/src/agnosticSdk/HooksHandler.js +102 -0
- package/dist/src/agnosticSdk/ReplacementHelper.d.ts +95 -0
- package/dist/src/agnosticSdk/ReplacementHelper.js +235 -0
- package/dist/{assets → src/assets}/AssetCache.d.ts +1 -1
- package/dist/{assets → src/assets}/AssetFactory.d.ts +2 -2
- package/dist/{assets → src/assets}/AssetFactory.js +4 -3
- package/dist/{assets → src/assets}/FT.d.ts +14 -17
- package/dist/{assets → src/assets}/FT.js +94 -58
- package/dist/{assets → src/assets}/NFT.d.ts +15 -16
- package/dist/{assets → src/assets}/NFT.js +58 -32
- package/dist/{assets → src/assets}/TON.d.ts +8 -13
- package/dist/{assets → src/assets}/TON.js +27 -21
- package/dist/src/errors/index.d.ts +2 -0
- package/dist/{errors → src/errors}/index.js +8 -2
- package/dist/{errors → src/errors}/instances.d.ts +11 -1
- package/dist/src/errors/instances.js +58 -0
- package/dist/src/index.d.ts +21 -0
- package/dist/{index.js → src/index.js} +38 -18
- package/dist/src/interfaces/Asset.d.ts +78 -0
- package/dist/src/interfaces/Asset.js +2 -0
- package/dist/src/interfaces/ContractOpener.d.ts +21 -0
- package/dist/src/interfaces/ContractOpener.js +2 -0
- package/dist/src/interfaces/IConfiguration.d.ts +35 -0
- package/dist/src/interfaces/IConfiguration.js +2 -0
- package/dist/src/interfaces/IHttpClient.d.ts +16 -0
- package/dist/src/interfaces/IHttpClient.js +2 -0
- package/dist/src/interfaces/ILiteSequencerClient.d.ts +43 -0
- package/dist/src/interfaces/ILiteSequencerClient.js +2 -0
- package/dist/src/interfaces/ILiteSequencerClientFactory.d.ts +9 -0
- package/dist/src/interfaces/ILiteSequencerClientFactory.js +2 -0
- package/dist/src/interfaces/ILogger.d.ts +10 -0
- package/dist/src/interfaces/ILogger.js +2 -0
- package/dist/src/interfaces/IOperationTracker.d.ts +81 -0
- package/dist/src/interfaces/IOperationTracker.js +2 -0
- package/dist/src/interfaces/ISimulator.d.ts +18 -0
- package/dist/src/interfaces/ISimulator.js +2 -0
- package/dist/src/interfaces/ITACTransactionManager.d.ts +15 -0
- package/dist/src/interfaces/ITACTransactionManager.js +2 -0
- package/dist/src/interfaces/ITONTransactionManager.d.ts +20 -0
- package/dist/src/interfaces/ITONTransactionManager.js +2 -0
- package/dist/src/interfaces/ITacSDK.d.ts +185 -0
- package/dist/src/interfaces/ITacSDK.js +2 -0
- package/dist/src/interfaces/SenderAbstraction.d.ts +35 -0
- package/dist/src/interfaces/SenderAbstraction.js +2 -0
- package/dist/src/interfaces/WalletInstanse.d.ts +20 -0
- package/dist/src/interfaces/WalletInstanse.js +2 -0
- package/dist/src/interfaces/index.d.ts +14 -0
- package/dist/src/interfaces/index.js +30 -0
- package/dist/src/sdk/AxiosHttpClient.d.ts +12 -0
- package/dist/src/sdk/AxiosHttpClient.js +23 -0
- package/dist/{sdk → src/sdk}/Configuration.d.ts +6 -5
- package/dist/src/sdk/Configuration.js +195 -0
- package/dist/{sdk → src/sdk}/Consts.d.ts +3 -0
- package/dist/{sdk → src/sdk}/Consts.js +4 -1
- package/dist/src/sdk/LiteSequencerClient.d.ts +18 -0
- package/dist/{sdk → src/sdk}/LiteSequencerClient.js +81 -25
- package/dist/{sdk → src/sdk}/Logger.d.ts +5 -5
- package/dist/{sdk → src/sdk}/Logger.js +12 -4
- package/dist/{sdk → src/sdk}/OperationTracker.d.ts +5 -13
- package/dist/{sdk → src/sdk}/OperationTracker.js +112 -16
- package/dist/src/sdk/Simulator.d.ts +11 -0
- package/dist/src/sdk/Simulator.js +70 -0
- package/dist/{sdk → src/sdk}/StartTracking.d.ts +1 -1
- package/dist/src/sdk/TACTransactionManager.d.ts +10 -0
- package/dist/src/sdk/TACTransactionManager.js +101 -0
- package/dist/src/sdk/TONTransactionManager.d.ts +17 -0
- package/dist/src/sdk/TONTransactionManager.js +220 -0
- package/dist/src/sdk/TacSdk.d.ts +44 -0
- package/dist/src/sdk/TacSdk.js +181 -0
- package/dist/{sdk → src/sdk}/TxFinalizer.d.ts +3 -2
- package/dist/{sdk → src/sdk}/TxFinalizer.js +13 -8
- package/dist/{sdk → src/sdk}/Utils.d.ts +14 -7
- package/dist/{sdk → src/sdk}/Utils.js +127 -34
- package/dist/{sdk → src/sdk}/Validator.d.ts +2 -2
- package/dist/{sdk → src/sdk}/Validator.js +6 -6
- package/dist/{sender → src/sender}/BatchSender.d.ts +1 -2
- package/dist/{sender → src/sender}/RawSender.d.ts +3 -3
- package/dist/{sender → src/sender}/SenderFactory.d.ts +1 -1
- package/dist/{sender → src/sender}/SenderFactory.js +1 -1
- package/dist/{sender → src/sender}/TonConnectSender.d.ts +2 -2
- package/dist/{sender → src/sender}/TonConnectSender.js +3 -3
- package/dist/{sender → src/sender}/index.d.ts +1 -1
- package/dist/{sender → src/sender}/index.js +1 -1
- package/dist/{structs → src/structs}/InternalStruct.d.ts +30 -6
- package/dist/{structs → src/structs}/Struct.d.ts +109 -62
- package/dist/{structs → src/structs}/Struct.js +7 -1
- package/dist/{wrappers → src/wrappers}/ContentUtils.js +0 -1
- package/dist/{wrappers → src/wrappers}/HighloadWalletV3.d.ts +2 -2
- package/package.json +118 -67
- package/dist/errors/index.d.ts +0 -2
- package/dist/errors/instances.js +0 -47
- package/dist/index.d.ts +0 -19
- package/dist/sdk/Configuration.js +0 -90
- package/dist/sdk/LiteSequencerClient.d.ts +0 -13
- package/dist/sdk/Simulator.d.ts +0 -23
- package/dist/sdk/Simulator.js +0 -169
- package/dist/sdk/TacSdk.d.ts +0 -32
- package/dist/sdk/TacSdk.js +0 -154
- package/dist/sdk/TransactionManager.d.ts +0 -22
- package/dist/sdk/TransactionManager.js +0 -269
- package/dist/sender/SenderAbstraction.d.ts +0 -22
- package/dist/sender/SenderAbstraction.js +0 -5
- package/dist/structs/Services.d.ts +0 -66
- package/dist/wrappers/JettonMaster.d.ts +0 -24
- package/dist/wrappers/JettonMaster.js +0 -53
- package/dist/wrappers/JettonWallet.js +0 -124
- package/dist/wrappers/Settings.d.ts +0 -10
- package/dist/wrappers/Settings.js +0 -38
- /package/dist/{structs/Services.js → artifacts/dev/tac/internal/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.js} +0 -0
- /package/dist/{assets → src/assets}/AssetCache.js +0 -0
- /package/dist/{assets → src/assets}/index.d.ts +0 -0
- /package/dist/{assets → src/assets}/index.js +0 -0
- /package/dist/{errors → src/errors}/errors.d.ts +0 -0
- /package/dist/{errors → src/errors}/errors.js +0 -0
- /package/dist/{sdk → src/sdk}/StartTracking.js +0 -0
- /package/dist/{sender → src/sender}/BatchSender.js +0 -0
- /package/dist/{sender → src/sender}/RawSender.js +0 -0
- /package/dist/{structs → src/structs}/InternalStruct.js +0 -0
- /package/dist/{wrappers → src/wrappers}/ContentUtils.d.ts +0 -0
- /package/dist/{wrappers → src/wrappers}/HighloadQueryId.d.ts +0 -0
- /package/dist/{wrappers → src/wrappers}/HighloadQueryId.js +0 -0
- /package/dist/{wrappers → src/wrappers}/HighloadWalletV3.js +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IConfiguration, ILogger, IOperationTracker, ISimulator, ITONTransactionManager } from '../interfaces';
|
|
2
|
+
import type { SenderAbstraction } from '../sender';
|
|
3
|
+
import { BatchCrossChainTx, CrossChainTransactionOptions, CrossChainTransactionsOptions, CrosschainTx, EvmProxyMsg, FeeParams, TransactionLinkerWithOperationId } from '../structs/Struct';
|
|
4
|
+
export declare class TONTransactionManager implements ITONTransactionManager {
|
|
5
|
+
private readonly config;
|
|
6
|
+
private readonly simulator;
|
|
7
|
+
private readonly operationTracker;
|
|
8
|
+
private readonly logger;
|
|
9
|
+
constructor(config: IConfiguration, simulator: ISimulator, operationTracker: IOperationTracker, logger?: ILogger);
|
|
10
|
+
protected buildFeeParams(options: CrossChainTransactionOptions, evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx): Promise<FeeParams>;
|
|
11
|
+
private prepareCrossChainTransaction;
|
|
12
|
+
private generateCrossChainMessages;
|
|
13
|
+
sendCrossChainTransaction(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, tx: CrosschainTx): Promise<TransactionLinkerWithOperationId>;
|
|
14
|
+
sendCrossChainTransactions(sender: SenderAbstraction, txs: BatchCrossChainTx[], options?: CrossChainTransactionsOptions): Promise<TransactionLinkerWithOperationId[]>;
|
|
15
|
+
private prepareBatchTransactions;
|
|
16
|
+
private waitForOperationIds;
|
|
17
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TONTransactionManager = void 0;
|
|
4
|
+
const assets_1 = require("../assets");
|
|
5
|
+
const errors_1 = require("../errors");
|
|
6
|
+
const instances_1 = require("../errors/instances");
|
|
7
|
+
const Consts_1 = require("./Consts");
|
|
8
|
+
const Logger_1 = require("./Logger");
|
|
9
|
+
const Utils_1 = require("./Utils");
|
|
10
|
+
const Validator_1 = require("./Validator");
|
|
11
|
+
class TONTransactionManager {
|
|
12
|
+
constructor(config, simulator, operationTracker, logger = new Logger_1.NoopLogger()) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.simulator = simulator;
|
|
15
|
+
this.operationTracker = operationTracker;
|
|
16
|
+
this.logger = logger;
|
|
17
|
+
}
|
|
18
|
+
async buildFeeParams(options, evmProxyMsg, sender, tx) {
|
|
19
|
+
const { withoutSimulation, protocolFee, evmExecutorFee, tvmExecutorFee, isRoundTrip } = options;
|
|
20
|
+
if (withoutSimulation) {
|
|
21
|
+
if (protocolFee === undefined || evmExecutorFee === undefined) {
|
|
22
|
+
throw errors_1.missingFeeParamsError;
|
|
23
|
+
}
|
|
24
|
+
if (isRoundTrip && tvmExecutorFee === undefined) {
|
|
25
|
+
throw errors_1.missingTvmExecutorFeeError;
|
|
26
|
+
}
|
|
27
|
+
if (!evmProxyMsg.gasLimit) {
|
|
28
|
+
throw errors_1.missingGasLimitError;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
protocolFee,
|
|
32
|
+
evmExecutorFee,
|
|
33
|
+
tvmExecutorFee: tvmExecutorFee || 0n,
|
|
34
|
+
gasLimit: evmProxyMsg.gasLimit,
|
|
35
|
+
isRoundTrip: isRoundTrip || false,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const simulationResult = await this.simulator.getSimulationInfo(sender, tx);
|
|
39
|
+
if (!evmProxyMsg.gasLimit)
|
|
40
|
+
evmProxyMsg.gasLimit = simulationResult.feeParams.gasLimit;
|
|
41
|
+
return {
|
|
42
|
+
protocolFee: protocolFee ?? simulationResult.feeParams.protocolFee,
|
|
43
|
+
evmExecutorFee: evmExecutorFee ?? simulationResult.feeParams.evmExecutorFee,
|
|
44
|
+
tvmExecutorFee: simulationResult.feeParams.isRoundTrip && tvmExecutorFee !== undefined
|
|
45
|
+
? tvmExecutorFee
|
|
46
|
+
: simulationResult.feeParams.tvmExecutorFee,
|
|
47
|
+
gasLimit: evmProxyMsg.gasLimit ?? simulationResult.feeParams.gasLimit,
|
|
48
|
+
isRoundTrip: isRoundTrip ?? simulationResult.feeParams.isRoundTrip,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async prepareCrossChainTransaction(evmProxyMsg, sender, assets, options, skipAssetsBalanceValidation = false) {
|
|
52
|
+
this.logger.debug('Preparing cross-chain transaction');
|
|
53
|
+
const caller = sender.getSenderAddress();
|
|
54
|
+
const { allowSimulationError = false, isRoundTrip = undefined, calculateRollbackFee = true, validateAssetsBalance = true, } = options || {};
|
|
55
|
+
const { evmValidExecutors = [], tvmValidExecutors = [] } = options || {};
|
|
56
|
+
Validator_1.Validator.validateEVMAddress(evmProxyMsg.evmTargetAddress);
|
|
57
|
+
const aggregatedData = (0, Utils_1.aggregateTokens)(assets);
|
|
58
|
+
Validator_1.Validator.validateEVMAddresses(evmValidExecutors);
|
|
59
|
+
Validator_1.Validator.validateTVMAddresses(tvmValidExecutors);
|
|
60
|
+
const shouldValidateAssets = validateAssetsBalance && !skipAssetsBalanceValidation;
|
|
61
|
+
if (shouldValidateAssets) {
|
|
62
|
+
await Promise.all([
|
|
63
|
+
...aggregatedData.jettons.map((jetton) => jetton.checkCanBeTransferredBy(caller)),
|
|
64
|
+
...aggregatedData.nfts.map((nft) => nft.checkCanBeTransferredBy(caller)),
|
|
65
|
+
aggregatedData.ton?.checkCanBeTransferredBy(caller),
|
|
66
|
+
].filter(Boolean));
|
|
67
|
+
}
|
|
68
|
+
const tokensLength = aggregatedData.jettons.length + aggregatedData.nfts.length;
|
|
69
|
+
const transactionLinker = (0, Utils_1.generateTransactionLinker)(caller, tokensLength || 1);
|
|
70
|
+
this.logger.debug(`Generated transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
|
|
71
|
+
const tacExecutors = evmValidExecutors.length ? evmValidExecutors : this.config.getTrustedTACExecutors;
|
|
72
|
+
const tonExecutors = tvmValidExecutors.length ? tvmValidExecutors : this.config.getTrustedTONExecutors;
|
|
73
|
+
const tx = {
|
|
74
|
+
evmProxyMsg,
|
|
75
|
+
assets: assets ?? [],
|
|
76
|
+
options: {
|
|
77
|
+
allowSimulationError,
|
|
78
|
+
isRoundTrip,
|
|
79
|
+
evmValidExecutors: tacExecutors,
|
|
80
|
+
tvmValidExecutors: tonExecutors,
|
|
81
|
+
calculateRollbackFee,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
const feeParams = await this.buildFeeParams(options || {}, evmProxyMsg, sender, tx);
|
|
85
|
+
this.logger.debug(`Resulting fee params: ${(0, Utils_1.formatObjectForLogging)(feeParams)}`);
|
|
86
|
+
const validExecutors = {
|
|
87
|
+
tac: tacExecutors,
|
|
88
|
+
ton: tonExecutors,
|
|
89
|
+
};
|
|
90
|
+
const evmData = (0, Utils_1.buildEvmDataCell)(transactionLinker, evmProxyMsg, validExecutors);
|
|
91
|
+
const messages = await this.generateCrossChainMessages(caller, evmData, aggregatedData, feeParams);
|
|
92
|
+
return {
|
|
93
|
+
transaction: {
|
|
94
|
+
validUntil: Date.now() + Consts_1.FIFTEEN_MINUTES,
|
|
95
|
+
messages,
|
|
96
|
+
network: this.config.network,
|
|
97
|
+
},
|
|
98
|
+
transactionLinker,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
async generateCrossChainMessages(caller, evmData, aggregatedData, feeParams) {
|
|
102
|
+
this.logger.debug('Generating cross-chain messages');
|
|
103
|
+
const { jettons, nfts, ton = assets_1.TON.create(this.config) } = aggregatedData;
|
|
104
|
+
const totalAssets = [...jettons, ...nfts];
|
|
105
|
+
let crossChainTonAmount = ton.rawAmount;
|
|
106
|
+
let feeTonAmount = feeParams.protocolFee + feeParams.evmExecutorFee + feeParams.tvmExecutorFee;
|
|
107
|
+
this.logger.debug(`Crosschain ton amount: ${crossChainTonAmount}, Fee ton amount: ${feeTonAmount}`);
|
|
108
|
+
if (!totalAssets.length) {
|
|
109
|
+
return [
|
|
110
|
+
{
|
|
111
|
+
address: this.config.TONParams.crossChainLayerAddress,
|
|
112
|
+
value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
|
|
113
|
+
payload: await ton.generatePayload({ excessReceiver: caller, evmData, feeParams }),
|
|
114
|
+
},
|
|
115
|
+
];
|
|
116
|
+
}
|
|
117
|
+
const messages = [];
|
|
118
|
+
let currentFeeParams = feeParams;
|
|
119
|
+
for (const asset of totalAssets) {
|
|
120
|
+
const payload = await asset.generatePayload({
|
|
121
|
+
excessReceiver: caller,
|
|
122
|
+
evmData,
|
|
123
|
+
crossChainTonAmount,
|
|
124
|
+
forwardFeeTonAmount: feeTonAmount,
|
|
125
|
+
feeParams: currentFeeParams,
|
|
126
|
+
});
|
|
127
|
+
const address = asset instanceof assets_1.FT ? await asset.getUserWalletAddress(caller) : asset.address;
|
|
128
|
+
messages.push({
|
|
129
|
+
address,
|
|
130
|
+
value: crossChainTonAmount + feeTonAmount + Consts_1.TRANSACTION_TON_AMOUNT,
|
|
131
|
+
payload,
|
|
132
|
+
});
|
|
133
|
+
crossChainTonAmount = 0n;
|
|
134
|
+
feeTonAmount = 0n;
|
|
135
|
+
currentFeeParams = undefined;
|
|
136
|
+
}
|
|
137
|
+
this.logger.debug('Cross-chain messages generated successfully');
|
|
138
|
+
return messages;
|
|
139
|
+
}
|
|
140
|
+
async sendCrossChainTransaction(evmProxyMsg, sender, tx) {
|
|
141
|
+
const { transaction, transactionLinker } = await this.prepareCrossChainTransaction(evmProxyMsg, sender, tx.assets, tx.options);
|
|
142
|
+
await assets_1.TON.checkBalance(sender, this.config, [transaction]);
|
|
143
|
+
this.logger.debug(`Sending transaction: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
|
|
144
|
+
const sendTransactionResult = await sender.sendShardTransaction(transaction, this.config.network, this.config.TONParams.contractOpener);
|
|
145
|
+
if (!sendTransactionResult.success || sendTransactionResult.error) {
|
|
146
|
+
throw (0, instances_1.sendCrossChainTransactionFailedError)(sendTransactionResult.error?.message ?? 'Transaction failed to send');
|
|
147
|
+
}
|
|
148
|
+
const shouldWaitForOperationId = tx.options?.waitOperationId ?? true;
|
|
149
|
+
if (!shouldWaitForOperationId) {
|
|
150
|
+
return { sendTransactionResult, ...transactionLinker };
|
|
151
|
+
}
|
|
152
|
+
const waitOptions = tx.options?.waitOptions ?? {};
|
|
153
|
+
waitOptions.successCheck = waitOptions.successCheck ?? ((id) => !!id);
|
|
154
|
+
waitOptions.logger = waitOptions.logger ?? this.logger;
|
|
155
|
+
const operationId = await this.operationTracker
|
|
156
|
+
.getOperationId(transactionLinker, waitOptions)
|
|
157
|
+
.catch((error) => {
|
|
158
|
+
this.logger.error(`Error while waiting for operation ID: ${error}`);
|
|
159
|
+
return undefined;
|
|
160
|
+
});
|
|
161
|
+
return { sendTransactionResult, operationId, ...transactionLinker };
|
|
162
|
+
}
|
|
163
|
+
async sendCrossChainTransactions(sender, txs, options) {
|
|
164
|
+
const caller = sender.getSenderAddress();
|
|
165
|
+
this.logger.debug(`Preparing ${txs.length} cross-chain transactions for ${caller}`);
|
|
166
|
+
const { transactions, transactionLinkers } = await this.prepareBatchTransactions(txs, sender);
|
|
167
|
+
await assets_1.TON.checkBalance(sender, this.config, transactions);
|
|
168
|
+
this.logger.debug(`Sending transactions: ${(0, Utils_1.formatObjectForLogging)(transactionLinkers)}`);
|
|
169
|
+
const results = await sender.sendShardTransactions(transactions, this.config.network, this.config.TONParams.contractOpener);
|
|
170
|
+
for (const result of results) {
|
|
171
|
+
if (!result.success || result.error) {
|
|
172
|
+
throw (0, instances_1.sendCrossChainTransactionFailedError)(result.error?.message ?? 'Transaction failed to send');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const shouldWaitForOperationIds = options?.waitOperationIds ?? true;
|
|
176
|
+
return shouldWaitForOperationIds
|
|
177
|
+
? await this.waitForOperationIds(transactionLinkers, caller, options?.waitOptions ?? {})
|
|
178
|
+
: transactionLinkers;
|
|
179
|
+
}
|
|
180
|
+
async prepareBatchTransactions(txs, sender) {
|
|
181
|
+
const caller = sender.getSenderAddress();
|
|
182
|
+
const txsRequiringValidation = txs.filter((tx) => tx.options?.validateAssetsBalance ?? true);
|
|
183
|
+
if (txsRequiringValidation.length) {
|
|
184
|
+
// Aggregate only assets from txs that require validation and validate once per unique asset
|
|
185
|
+
const assetsToValidate = txsRequiringValidation.flatMap((tx) => tx.assets ?? []);
|
|
186
|
+
const aggregatedData = (0, Utils_1.aggregateTokens)(assetsToValidate);
|
|
187
|
+
await Promise.all([
|
|
188
|
+
...aggregatedData.jettons.map((jetton) => jetton.checkCanBeTransferredBy(caller)),
|
|
189
|
+
...aggregatedData.nfts.map((nft) => nft.checkCanBeTransferredBy(caller)),
|
|
190
|
+
aggregatedData.ton?.checkCanBeTransferredBy(caller),
|
|
191
|
+
].filter(Boolean));
|
|
192
|
+
}
|
|
193
|
+
const results = await Promise.all(txs.map(({ evmProxyMsg, assets, options }) => this.prepareCrossChainTransaction(evmProxyMsg, sender, assets, options, true)));
|
|
194
|
+
return {
|
|
195
|
+
transactions: results.map((r) => r.transaction),
|
|
196
|
+
transactionLinkers: results.map((r) => r.transactionLinker),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
async waitForOperationIds(transactionLinkers, caller, waitOptions) {
|
|
200
|
+
this.logger.debug(`Waiting for operation IDs`);
|
|
201
|
+
try {
|
|
202
|
+
waitOptions.successCheck =
|
|
203
|
+
waitOptions.successCheck ??
|
|
204
|
+
((operationIds) => Object.keys(operationIds).length == transactionLinkers.length &&
|
|
205
|
+
Object.values(operationIds).every((ids) => ids.operationIds.length > 0));
|
|
206
|
+
waitOptions.logger = waitOptions.logger ?? this.logger;
|
|
207
|
+
const operationIds = await this.operationTracker.getOperationIdsByShardsKeys(transactionLinkers.map((linker) => linker.shardsKey), caller, waitOptions);
|
|
208
|
+
this.logger.debug(`Operation IDs: ${(0, Utils_1.formatObjectForLogging)(operationIds)}`);
|
|
209
|
+
return transactionLinkers.map((linker) => ({
|
|
210
|
+
...linker,
|
|
211
|
+
operationId: operationIds[linker.shardsKey].operationIds.at(0),
|
|
212
|
+
}));
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
this.logger.error(`Error while waiting for operation IDs: ${error}`);
|
|
216
|
+
return transactionLinkers;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
exports.TONTransactionManager = TONTransactionManager;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Wallet } from 'ethers';
|
|
2
|
+
import { JettonMinterData, NFTItemData } from '../../artifacts/tonTypes';
|
|
3
|
+
import { FT, NFT } from '../assets';
|
|
4
|
+
import { IConfiguration, ILogger, IOperationTracker, ITacSDK } from '../interfaces';
|
|
5
|
+
import type { SenderAbstraction } from '../sender';
|
|
6
|
+
import { AssetFromFTArg, AssetFromNFTCollectionArg, AssetFromNFTItemArg, AssetLike, BatchCrossChainTxWithAssetLike, CrossChainTransactionOptions, CrossChainTransactionsOptions, CrosschainTx, EVMAddress, EvmProxyMsg, ExecutionFeeEstimationResult, NFTAddressType, SDKParams, SuggestedTVMExecutorFee, TACSimulationParams, TACSimulationResult, TransactionLinkerWithOperationId, TVMAddress, UserWalletBalanceExtended } from '../structs/Struct';
|
|
7
|
+
export declare class TacSdk implements ITacSDK {
|
|
8
|
+
readonly config: IConfiguration;
|
|
9
|
+
readonly operationTracker: IOperationTracker;
|
|
10
|
+
private readonly simulator;
|
|
11
|
+
private readonly tonTransactionManager;
|
|
12
|
+
private readonly tacTransactionManager;
|
|
13
|
+
private constructor();
|
|
14
|
+
static create(sdkParams: SDKParams, logger?: ILogger): Promise<TacSdk>;
|
|
15
|
+
closeConnections(): unknown;
|
|
16
|
+
get nativeTONAddress(): string;
|
|
17
|
+
getSmartAccountAddressForTvmWallet(tvmWallet: string, applicationAddress: string): Promise<string>;
|
|
18
|
+
nativeTACAddress(): Promise<string>;
|
|
19
|
+
get getTrustedTACExecutors(): string[];
|
|
20
|
+
get getTrustedTONExecutors(): string[];
|
|
21
|
+
getSimulationInfo(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, assets?: AssetLike[], options?: CrossChainTransactionOptions): Promise<ExecutionFeeEstimationResult>;
|
|
22
|
+
getTVMExecutorFeeInfo(assets: AssetLike[], feeSymbol: string, tvmValidExecutors?: string[]): Promise<SuggestedTVMExecutorFee>;
|
|
23
|
+
sendCrossChainTransaction(evmProxyMsg: EvmProxyMsg, sender: SenderAbstraction, assets?: AssetLike[], options?: CrossChainTransactionOptions): Promise<TransactionLinkerWithOperationId>;
|
|
24
|
+
sendCrossChainTransactions(sender: SenderAbstraction, txs: BatchCrossChainTxWithAssetLike[], options?: CrossChainTransactionsOptions): Promise<TransactionLinkerWithOperationId[]>;
|
|
25
|
+
bridgeTokensToTON(signer: Wallet, value: bigint, tonTarget: string, assets?: AssetLike[], tvmExecutorFee?: bigint, tvmValidExecutors?: string[]): Promise<string>;
|
|
26
|
+
isContractDeployedOnTVM(address: string): Promise<boolean>;
|
|
27
|
+
simulateTACMessage(req: TACSimulationParams): Promise<TACSimulationResult>;
|
|
28
|
+
simulateTransactions(sender: SenderAbstraction, txs: CrosschainTx[]): Promise<ExecutionFeeEstimationResult[]>;
|
|
29
|
+
getAsset(args: AssetFromFTArg): Promise<FT>;
|
|
30
|
+
getAsset(args: AssetFromNFTCollectionArg): Promise<NFT>;
|
|
31
|
+
getAsset(args: AssetFromNFTItemArg): Promise<NFT>;
|
|
32
|
+
getUserJettonWalletAddress(userAddress: string, tokenAddress: string): Promise<string>;
|
|
33
|
+
getUserJettonBalance(userAddress: string, tokenAddress: string): Promise<bigint>;
|
|
34
|
+
getUserJettonBalanceExtended(userAddress: string, tokenAddress: string): Promise<UserWalletBalanceExtended>;
|
|
35
|
+
getJettonData(itemAddress: TVMAddress): Promise<JettonMinterData>;
|
|
36
|
+
getFT(address: TVMAddress | EVMAddress): Promise<FT>;
|
|
37
|
+
getNFTItemData(itemAddress: TVMAddress): Promise<NFTItemData>;
|
|
38
|
+
getNFT(args: AssetFromNFTCollectionArg | AssetFromNFTItemArg): Promise<NFT>;
|
|
39
|
+
getEVMTokenAddress(tvmTokenAddress: string): Promise<string>;
|
|
40
|
+
getTVMTokenAddress(evmTokenAddress: string): Promise<string>;
|
|
41
|
+
getTVMNFTAddress(evmNFTAddress: string, tokenId?: number | bigint): Promise<string>;
|
|
42
|
+
getEVMNFTAddress(tvmNFTAddress: string, addressType: NFTAddressType): Promise<string>;
|
|
43
|
+
getOperationTracker(): IOperationTracker;
|
|
44
|
+
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TacSdk = void 0;
|
|
4
|
+
const artifacts_1 = require("../../artifacts");
|
|
5
|
+
const assets_1 = require("../assets");
|
|
6
|
+
const Struct_1 = require("../structs/Struct");
|
|
7
|
+
const Configuration_1 = require("./Configuration");
|
|
8
|
+
const Consts_1 = require("./Consts");
|
|
9
|
+
const Logger_1 = require("./Logger");
|
|
10
|
+
const OperationTracker_1 = require("./OperationTracker");
|
|
11
|
+
const Simulator_1 = require("./Simulator");
|
|
12
|
+
const TACTransactionManager_1 = require("./TACTransactionManager");
|
|
13
|
+
const TONTransactionManager_1 = require("./TONTransactionManager");
|
|
14
|
+
const Utils_1 = require("./Utils");
|
|
15
|
+
class TacSdk {
|
|
16
|
+
constructor(config, simulator, tonTransactionManager, tacTransactionManager, operationTracker) {
|
|
17
|
+
this.config = config;
|
|
18
|
+
this.simulator = simulator;
|
|
19
|
+
this.tonTransactionManager = tonTransactionManager;
|
|
20
|
+
this.tacTransactionManager = tacTransactionManager;
|
|
21
|
+
this.operationTracker = operationTracker;
|
|
22
|
+
}
|
|
23
|
+
static async create(sdkParams, logger = new Logger_1.NoopLogger()) {
|
|
24
|
+
const network = sdkParams.network;
|
|
25
|
+
const delay = sdkParams.delay ?? Consts_1.DEFAULT_DELAY;
|
|
26
|
+
let artifacts;
|
|
27
|
+
switch (network) {
|
|
28
|
+
case Struct_1.Network.MAINNET:
|
|
29
|
+
artifacts = artifacts_1.mainnet;
|
|
30
|
+
break;
|
|
31
|
+
case Struct_1.Network.TESTNET:
|
|
32
|
+
artifacts = artifacts_1.testnet;
|
|
33
|
+
break;
|
|
34
|
+
case Struct_1.Network.DEV:
|
|
35
|
+
artifacts = artifacts_1.dev;
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
throw new Error(`Unsupported network: ${network}`);
|
|
39
|
+
}
|
|
40
|
+
const config = await Configuration_1.Configuration.create(network, artifacts, sdkParams.TONParams, sdkParams.TACParams, sdkParams.customLiteSequencerEndpoints, delay);
|
|
41
|
+
const operationTracker = new OperationTracker_1.OperationTracker(network, config.liteSequencerEndpoints);
|
|
42
|
+
const simulator = new Simulator_1.Simulator(config, operationTracker, logger);
|
|
43
|
+
const tonTransactionManager = new TONTransactionManager_1.TONTransactionManager(config, simulator, operationTracker, logger);
|
|
44
|
+
const tacTransactionManager = new TACTransactionManager_1.TACTransactionManager(config, operationTracker, logger);
|
|
45
|
+
return new TacSdk(config, simulator, tonTransactionManager, tacTransactionManager, operationTracker);
|
|
46
|
+
}
|
|
47
|
+
closeConnections() {
|
|
48
|
+
return this.config.closeConnections();
|
|
49
|
+
}
|
|
50
|
+
get nativeTONAddress() {
|
|
51
|
+
return this.config.nativeTONAddress;
|
|
52
|
+
}
|
|
53
|
+
async getSmartAccountAddressForTvmWallet(tvmWallet, applicationAddress) {
|
|
54
|
+
const bouncedAddress = (0, Utils_1.getBouncedAddress)(tvmWallet);
|
|
55
|
+
return await this.config.TACParams.smartAccountFactory.getSmartAccountForApplication(bouncedAddress, applicationAddress);
|
|
56
|
+
}
|
|
57
|
+
async nativeTACAddress() {
|
|
58
|
+
return this.config.nativeTACAddress();
|
|
59
|
+
}
|
|
60
|
+
get getTrustedTACExecutors() {
|
|
61
|
+
return this.config.getTrustedTACExecutors;
|
|
62
|
+
}
|
|
63
|
+
get getTrustedTONExecutors() {
|
|
64
|
+
return this.config.getTrustedTONExecutors;
|
|
65
|
+
}
|
|
66
|
+
async getSimulationInfo(evmProxyMsg, sender, assets, options) {
|
|
67
|
+
const normalizedAssets = await (0, Utils_1.normalizeAssets)(this.config, assets);
|
|
68
|
+
const tx = { evmProxyMsg, assets: normalizedAssets, options };
|
|
69
|
+
return this.simulator.getSimulationInfo(sender, tx);
|
|
70
|
+
}
|
|
71
|
+
async getTVMExecutorFeeInfo(assets, feeSymbol, tvmValidExecutors) {
|
|
72
|
+
const normalized = await (0, Utils_1.normalizeAssets)(this.config, assets);
|
|
73
|
+
const params = {
|
|
74
|
+
tonAssets: (0, Utils_1.mapAssetsToTonAssets)(normalized),
|
|
75
|
+
feeSymbol: feeSymbol,
|
|
76
|
+
tvmValidExecutors: tvmValidExecutors ?? [],
|
|
77
|
+
};
|
|
78
|
+
return this.operationTracker.getTVMExecutorFee(params);
|
|
79
|
+
}
|
|
80
|
+
async sendCrossChainTransaction(evmProxyMsg, sender, assets = [], options) {
|
|
81
|
+
const normalizedAssets = await (0, Utils_1.normalizeAssets)(this.config, assets);
|
|
82
|
+
const tx = { evmProxyMsg, assets: normalizedAssets, options };
|
|
83
|
+
return this.tonTransactionManager.sendCrossChainTransaction(evmProxyMsg, sender, tx);
|
|
84
|
+
}
|
|
85
|
+
async sendCrossChainTransactions(sender, txs, options) {
|
|
86
|
+
const normalizedTxs = await Promise.all(txs.map(async (tx) => ({
|
|
87
|
+
evmProxyMsg: tx.evmProxyMsg,
|
|
88
|
+
options: tx.options,
|
|
89
|
+
assets: await (0, Utils_1.normalizeAssets)(this.config, tx.assets),
|
|
90
|
+
})));
|
|
91
|
+
return this.tonTransactionManager.sendCrossChainTransactions(sender, normalizedTxs, options);
|
|
92
|
+
}
|
|
93
|
+
async bridgeTokensToTON(signer, value, tonTarget, assets, tvmExecutorFee, tvmValidExecutors) {
|
|
94
|
+
const normalizedAssets = await (0, Utils_1.normalizeAssets)(this.config, assets);
|
|
95
|
+
return this.tacTransactionManager.bridgeTokensToTON(signer, value, tonTarget, normalizedAssets, tvmExecutorFee, tvmValidExecutors);
|
|
96
|
+
}
|
|
97
|
+
async isContractDeployedOnTVM(address) {
|
|
98
|
+
return this.config.isContractDeployedOnTVM(address);
|
|
99
|
+
}
|
|
100
|
+
async simulateTACMessage(req) {
|
|
101
|
+
return this.operationTracker.simulateTACMessage(req);
|
|
102
|
+
}
|
|
103
|
+
async simulateTransactions(sender, txs) {
|
|
104
|
+
return this.simulator.getSimulationsInfo(sender, txs);
|
|
105
|
+
}
|
|
106
|
+
async getAsset(args) {
|
|
107
|
+
return await assets_1.AssetFactory.from(this.config, args);
|
|
108
|
+
}
|
|
109
|
+
// Jetton methods
|
|
110
|
+
async getUserJettonWalletAddress(userAddress, tokenAddress) {
|
|
111
|
+
const ft = await assets_1.AssetFactory.from(this.config, {
|
|
112
|
+
address: tokenAddress,
|
|
113
|
+
tokenType: Struct_1.AssetType.FT,
|
|
114
|
+
});
|
|
115
|
+
return ft.getUserWalletAddress(userAddress);
|
|
116
|
+
}
|
|
117
|
+
async getUserJettonBalance(userAddress, tokenAddress) {
|
|
118
|
+
const ft = await assets_1.AssetFactory.from(this.config, {
|
|
119
|
+
address: tokenAddress,
|
|
120
|
+
tokenType: Struct_1.AssetType.FT,
|
|
121
|
+
});
|
|
122
|
+
return ft.getUserBalance(userAddress);
|
|
123
|
+
}
|
|
124
|
+
async getUserJettonBalanceExtended(userAddress, tokenAddress) {
|
|
125
|
+
const ft = await assets_1.AssetFactory.from(this.config, {
|
|
126
|
+
address: tokenAddress,
|
|
127
|
+
tokenType: Struct_1.AssetType.FT,
|
|
128
|
+
});
|
|
129
|
+
return ft.getUserBalanceExtended(userAddress);
|
|
130
|
+
}
|
|
131
|
+
async getJettonData(itemAddress) {
|
|
132
|
+
return assets_1.FT.getJettonData(this.config, itemAddress);
|
|
133
|
+
}
|
|
134
|
+
async getFT(address) {
|
|
135
|
+
return await assets_1.FT.fromAddress(this.config, address);
|
|
136
|
+
}
|
|
137
|
+
// NFT methods
|
|
138
|
+
async getNFTItemData(itemAddress) {
|
|
139
|
+
return assets_1.NFT.getItemData(this.config, itemAddress);
|
|
140
|
+
}
|
|
141
|
+
async getNFT(args) {
|
|
142
|
+
if ('addressType' in args && args.addressType === Struct_1.NFTAddressType.ITEM) {
|
|
143
|
+
return assets_1.NFT.fromItem(this.config, args.address);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
const collectionArgs = args;
|
|
147
|
+
return assets_1.NFT.fromCollection(this.config, {
|
|
148
|
+
collection: collectionArgs.address,
|
|
149
|
+
index: collectionArgs.index,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Address conversion methods
|
|
154
|
+
async getEVMTokenAddress(tvmTokenAddress) {
|
|
155
|
+
const asset = await assets_1.AssetFactory.from(this.config, {
|
|
156
|
+
address: tvmTokenAddress,
|
|
157
|
+
tokenType: Struct_1.AssetType.FT,
|
|
158
|
+
});
|
|
159
|
+
return asset.getEVMAddress();
|
|
160
|
+
}
|
|
161
|
+
async getTVMTokenAddress(evmTokenAddress) {
|
|
162
|
+
return assets_1.FT.getTVMAddress(this.config, evmTokenAddress);
|
|
163
|
+
}
|
|
164
|
+
async getTVMNFTAddress(evmNFTAddress, tokenId) {
|
|
165
|
+
return assets_1.NFT.getTVMAddress(this.config, evmNFTAddress, tokenId === undefined ? undefined : BigInt(tokenId));
|
|
166
|
+
}
|
|
167
|
+
async getEVMNFTAddress(tvmNFTAddress, addressType) {
|
|
168
|
+
if (addressType === Struct_1.NFTAddressType.ITEM) {
|
|
169
|
+
const nft = await assets_1.NFT.fromItem(this.config, tvmNFTAddress);
|
|
170
|
+
return nft.getEVMAddress();
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
const nftCollection = await assets_1.NFT.fromCollection(this.config, { collection: tvmNFTAddress, index: 0n });
|
|
174
|
+
return nftCollection.getEVMAddress();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
getOperationTracker() {
|
|
178
|
+
return this.operationTracker;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.TacSdk = TacSdk;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { IHttpClient, ILogger } from '../interfaces';
|
|
1
2
|
import { TxFinalizerConfig } from '../structs/InternalStruct';
|
|
2
|
-
import { ILogger } from '../structs/Services';
|
|
3
3
|
export declare class TonTxFinalizer {
|
|
4
4
|
private logger;
|
|
5
5
|
private apiConfig;
|
|
6
|
-
|
|
6
|
+
private readonly httpClient;
|
|
7
|
+
constructor(apiConfig: TxFinalizerConfig, logger?: ILogger, httpClient?: IHttpClient);
|
|
7
8
|
private logHashFormats;
|
|
8
9
|
private fetchAdjacentTransactions;
|
|
9
10
|
trackTransactionTree(hash: string, maxDepth?: number): Promise<void>;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.TonTxFinalizer = void 0;
|
|
7
|
-
const
|
|
4
|
+
const AxiosHttpClient_1 = require("./AxiosHttpClient");
|
|
8
5
|
const Logger_1 = require("./Logger");
|
|
9
6
|
const Utils_1 = require("./Utils");
|
|
10
7
|
const IGNORE_OPCODE = [
|
|
@@ -12,9 +9,10 @@ const IGNORE_OPCODE = [
|
|
|
12
9
|
'0x7362d09c', // Jetton Notify
|
|
13
10
|
];
|
|
14
11
|
class TonTxFinalizer {
|
|
15
|
-
constructor(apiConfig, logger = new Logger_1.NoopLogger()) {
|
|
12
|
+
constructor(apiConfig, logger = new Logger_1.NoopLogger(), httpClient = new AxiosHttpClient_1.AxiosHttpClient()) {
|
|
16
13
|
this.apiConfig = apiConfig;
|
|
17
14
|
this.logger = logger;
|
|
15
|
+
this.httpClient = httpClient;
|
|
18
16
|
}
|
|
19
17
|
logHashFormats(hash) {
|
|
20
18
|
let hex, base64;
|
|
@@ -34,10 +32,9 @@ class TonTxFinalizer {
|
|
|
34
32
|
// Fetches adjacent transactions from toncenter
|
|
35
33
|
async fetchAdjacentTransactions(hash, retries = 5, delay = 1000) {
|
|
36
34
|
for (let i = retries; i >= 0; i--) {
|
|
37
|
-
await (0, Utils_1.sleep)(delay);
|
|
38
35
|
try {
|
|
39
36
|
const url = this.apiConfig.urlBuilder(hash);
|
|
40
|
-
const response = await
|
|
37
|
+
const response = await this.httpClient.get(url, {
|
|
41
38
|
headers: {
|
|
42
39
|
[this.apiConfig.authorization.header]: this.apiConfig.authorization.value,
|
|
43
40
|
},
|
|
@@ -49,6 +46,9 @@ class TonTxFinalizer {
|
|
|
49
46
|
const errorMessage = error.message;
|
|
50
47
|
// Rate limit error (429) - retry
|
|
51
48
|
if (errorMessage.includes('429')) {
|
|
49
|
+
if (i > 0) {
|
|
50
|
+
await (0, Utils_1.sleep)(delay);
|
|
51
|
+
}
|
|
52
52
|
continue;
|
|
53
53
|
}
|
|
54
54
|
// Log all errors except 404 Not Found
|
|
@@ -56,6 +56,9 @@ class TonTxFinalizer {
|
|
|
56
56
|
const logMessage = error instanceof Error ? error.message : error;
|
|
57
57
|
console.warn(`Failed to fetch adjacent transactions for ${hash}:`, logMessage);
|
|
58
58
|
}
|
|
59
|
+
if (i > 0) {
|
|
60
|
+
await (0, Utils_1.sleep)(delay);
|
|
61
|
+
}
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
return [];
|
|
@@ -91,7 +94,9 @@ class TonTxFinalizer {
|
|
|
91
94
|
`action.result_code = ${action.resultCode}`);
|
|
92
95
|
}
|
|
93
96
|
if (currentDepth + 1 < maxDepth) {
|
|
94
|
-
|
|
97
|
+
if (tx.outMsgs.length > 0) {
|
|
98
|
+
queue.push({ hash: tx.hash, depth: currentDepth + 1 });
|
|
99
|
+
}
|
|
95
100
|
}
|
|
96
101
|
}
|
|
97
102
|
else {
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Address, Cell } from '@ton/ton';
|
|
2
2
|
import { AbiCoder } from 'ethers';
|
|
3
|
-
import { FT } from '../assets
|
|
4
|
-
import {
|
|
5
|
-
import { TON } from '../assets/TON';
|
|
3
|
+
import type { FT, NFT, TON } from '../assets';
|
|
4
|
+
import { Asset, IConfiguration } from '../interfaces';
|
|
6
5
|
import { RandomNumberByTimestamp } from '../structs/InternalStruct';
|
|
7
|
-
import {
|
|
6
|
+
import { AssetLike, EvmProxyMsg, FeeParams, TONAsset, TransactionLinker, ValidExecutors, WaitOptions } from '../structs/Struct';
|
|
8
7
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
9
8
|
export declare function generateRandomNumber(interval: number): number;
|
|
10
9
|
export declare function generateRandomNumberByTimestamp(): RandomNumberByTimestamp;
|
|
@@ -18,10 +17,18 @@ export declare const calculateRawAmount: (amount: number, decimals: number) => b
|
|
|
18
17
|
export declare const calculateAmount: (rawAmount: bigint, decimals: number) => number;
|
|
19
18
|
export declare const toCamelCaseTransformer: (data: string) => any;
|
|
20
19
|
export declare const generateFeeData: (feeParams?: FeeParams) => Cell | undefined;
|
|
21
|
-
export declare function waitUntilSuccess<T, A extends unknown[]>(options: WaitOptions<T> | undefined, operation: (...args: A) => Promise<T>, ...args: A): Promise<T>;
|
|
20
|
+
export declare function waitUntilSuccess<T, TContext = unknown, A extends unknown[] = unknown[]>(options: WaitOptions<T, TContext> | undefined, operation: (...args: A) => Promise<T>, operationDescription?: string, ...args: A): Promise<T>;
|
|
22
21
|
export declare function formatObjectForLogging(obj: unknown): string;
|
|
23
|
-
export declare function
|
|
22
|
+
export declare function getBouncedAddress(tvmAddress: string): string;
|
|
23
|
+
export declare function aggregateTokens(assets?: Asset[]): {
|
|
24
24
|
jettons: FT[];
|
|
25
25
|
nfts: NFT[];
|
|
26
26
|
ton?: TON;
|
|
27
|
-
}
|
|
27
|
+
};
|
|
28
|
+
export declare function sha256toBigInt(ContractName: string): bigint;
|
|
29
|
+
export declare function mapAssetsToTonAssets(assets: Asset[]): TONAsset[];
|
|
30
|
+
export declare function normalizeAsset(config: IConfiguration, input: AssetLike): Promise<Asset>;
|
|
31
|
+
export declare function normalizeAssets(config: IConfiguration, assets?: AssetLike[]): Promise<Asset[]>;
|
|
32
|
+
export declare function getAddressString(cell?: Cell): string;
|
|
33
|
+
export declare function getNumber(len: number, cell?: Cell): number;
|
|
34
|
+
export declare function getString(cell?: Cell): string;
|