@tonappchain/sdk 0.7.0-rc9 → 0.7.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/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 +1 -1
- 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 +7 -13
- package/dist/{assets → src/assets}/TON.js +22 -20
- 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 +57 -6
- 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,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;
|
|
@@ -10,9 +10,19 @@ exports.generateTransactionLinker = generateTransactionLinker;
|
|
|
10
10
|
exports.calculateEVMTokenAddress = calculateEVMTokenAddress;
|
|
11
11
|
exports.waitUntilSuccess = waitUntilSuccess;
|
|
12
12
|
exports.formatObjectForLogging = formatObjectForLogging;
|
|
13
|
+
exports.getBouncedAddress = getBouncedAddress;
|
|
13
14
|
exports.aggregateTokens = aggregateTokens;
|
|
15
|
+
exports.sha256toBigInt = sha256toBigInt;
|
|
16
|
+
exports.mapAssetsToTonAssets = mapAssetsToTonAssets;
|
|
17
|
+
exports.normalizeAsset = normalizeAsset;
|
|
18
|
+
exports.normalizeAssets = normalizeAssets;
|
|
19
|
+
exports.getAddressString = getAddressString;
|
|
20
|
+
exports.getNumber = getNumber;
|
|
21
|
+
exports.getString = getString;
|
|
14
22
|
const ton_1 = require("@ton/ton");
|
|
15
23
|
const ethers_1 = require("ethers");
|
|
24
|
+
const ton_crypto_1 = require("ton-crypto");
|
|
25
|
+
const assets_1 = require("../assets");
|
|
16
26
|
const errors_1 = require("../errors");
|
|
17
27
|
const Struct_1 = require("../structs/Struct");
|
|
18
28
|
const Consts_1 = require("./Consts");
|
|
@@ -131,12 +141,14 @@ const generateFeeData = (feeParams) => {
|
|
|
131
141
|
}
|
|
132
142
|
};
|
|
133
143
|
exports.generateFeeData = generateFeeData;
|
|
134
|
-
async function waitUntilSuccess(options = {}, operation, ...args) {
|
|
144
|
+
async function waitUntilSuccess(options = {}, operation, operationDescription, ...args) {
|
|
135
145
|
const timeout = options.timeout ?? 300000;
|
|
136
146
|
const maxAttempts = options.maxAttempts ?? 30;
|
|
137
147
|
const delay = options.delay ?? 10000;
|
|
138
148
|
const successCheck = options.successCheck;
|
|
139
|
-
|
|
149
|
+
const context = options.context;
|
|
150
|
+
const contextPrefix = operationDescription ? `[${operationDescription}] ` : '';
|
|
151
|
+
options.logger?.debug(`${contextPrefix}Starting wait for success with timeout=${timeout}ms, maxAttempts=${maxAttempts}, delay=${delay}ms`);
|
|
140
152
|
const startTime = Date.now();
|
|
141
153
|
let attempt = 1;
|
|
142
154
|
while (true) {
|
|
@@ -144,27 +156,36 @@ async function waitUntilSuccess(options = {}, operation, ...args) {
|
|
|
144
156
|
const elapsedTime = currentTime - startTime;
|
|
145
157
|
try {
|
|
146
158
|
const result = await operation(...args);
|
|
147
|
-
if (
|
|
159
|
+
if (result === undefined || result === null) {
|
|
148
160
|
throw new Error(`Empty result`);
|
|
149
161
|
}
|
|
150
|
-
options.logger?.debug(
|
|
151
|
-
if (successCheck && !successCheck(result)) {
|
|
162
|
+
options.logger?.debug(`${contextPrefix}Result: ${formatObjectForLogging(result)}`);
|
|
163
|
+
if (successCheck && !successCheck(result, context)) {
|
|
152
164
|
throw new Error(`Result is not successful`);
|
|
153
165
|
}
|
|
154
|
-
options.logger?.debug(
|
|
166
|
+
options.logger?.debug(`${contextPrefix}Attempt ${attempt} successful`);
|
|
167
|
+
// Execute custom onSuccess callback if provided
|
|
168
|
+
if (options.onSuccess) {
|
|
169
|
+
try {
|
|
170
|
+
await options.onSuccess(result, context);
|
|
171
|
+
}
|
|
172
|
+
catch (callbackError) {
|
|
173
|
+
options.logger?.warn(`${contextPrefix}onSuccess callback error: ${callbackError}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
155
176
|
return result;
|
|
156
177
|
}
|
|
157
178
|
catch (error) {
|
|
158
179
|
if (elapsedTime >= timeout) {
|
|
159
|
-
options.logger?.debug(
|
|
180
|
+
options.logger?.debug(`${contextPrefix}Timeout after ${elapsedTime}ms`);
|
|
160
181
|
throw error;
|
|
161
182
|
}
|
|
162
183
|
if (attempt >= maxAttempts) {
|
|
163
|
-
options.logger?.debug(
|
|
184
|
+
options.logger?.debug(`${contextPrefix}Max attempts (${maxAttempts}) reached`);
|
|
164
185
|
throw error;
|
|
165
186
|
}
|
|
166
|
-
options.logger?.debug(
|
|
167
|
-
options.logger?.debug(
|
|
187
|
+
options.logger?.debug(`${contextPrefix}Error on attempt ${attempt}: ${error}`);
|
|
188
|
+
options.logger?.debug(`${contextPrefix}Waiting ${delay}ms before next attempt`);
|
|
168
189
|
await (0, exports.sleep)(delay);
|
|
169
190
|
attempt++;
|
|
170
191
|
}
|
|
@@ -173,36 +194,108 @@ async function waitUntilSuccess(options = {}, operation, ...args) {
|
|
|
173
194
|
function formatObjectForLogging(obj) {
|
|
174
195
|
return JSON.stringify(obj, (key, value) => (typeof value === 'bigint' ? value.toString() : value));
|
|
175
196
|
}
|
|
176
|
-
|
|
177
|
-
|
|
197
|
+
function getBouncedAddress(tvmAddress) {
|
|
198
|
+
return ton_1.Address.parse(tvmAddress).toString({
|
|
199
|
+
bounceable: true,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
function aggregateTokens(assets) {
|
|
203
|
+
const jettonsMap = new Map();
|
|
204
|
+
const nftsMap = new Map();
|
|
178
205
|
let ton;
|
|
179
|
-
for
|
|
180
|
-
if (asset.type
|
|
181
|
-
|
|
182
|
-
if (!asset.address) {
|
|
183
|
-
ton = ton ? await ton.addAmount({ rawAmount: asset.rawAmount }) : asset.clone;
|
|
184
|
-
continue;
|
|
206
|
+
for (const asset of assets ?? []) {
|
|
207
|
+
if (asset.rawAmount === 0n && asset.type === Struct_1.AssetType.FT) {
|
|
208
|
+
throw (0, errors_1.zeroRawAmountError)(asset.address || 'NATIVE TON');
|
|
185
209
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
210
|
+
if (asset.type === Struct_1.AssetType.FT) {
|
|
211
|
+
if (!asset.address) {
|
|
212
|
+
ton = ton ? ton.addRawAmount(asset.rawAmount) : asset.clone;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
const existing = jettonsMap.get(asset.address);
|
|
216
|
+
jettonsMap.set(asset.address, (existing ? existing.addRawAmount(asset.rawAmount) : asset.clone));
|
|
217
|
+
}
|
|
189
218
|
}
|
|
190
|
-
else {
|
|
191
|
-
|
|
219
|
+
else if (asset.type === Struct_1.AssetType.NFT) {
|
|
220
|
+
nftsMap.set(asset.address, asset.clone);
|
|
192
221
|
}
|
|
193
|
-
uniqueAssetsMap.set(asset.address, jetton);
|
|
194
|
-
}
|
|
195
|
-
const jettons = Array.from(uniqueAssetsMap.values());
|
|
196
|
-
uniqueAssetsMap.clear();
|
|
197
|
-
for await (const asset of assets ?? []) {
|
|
198
|
-
if (asset.type !== Struct_1.AssetType.NFT)
|
|
199
|
-
continue;
|
|
200
|
-
uniqueAssetsMap.set(asset.address, asset.clone);
|
|
201
222
|
}
|
|
202
|
-
const nfts = Array.from(uniqueAssetsMap.values());
|
|
203
223
|
return {
|
|
204
|
-
jettons,
|
|
205
|
-
nfts,
|
|
224
|
+
jettons: Array.from(jettonsMap.values()),
|
|
225
|
+
nfts: Array.from(nftsMap.values()),
|
|
206
226
|
ton,
|
|
207
227
|
};
|
|
208
228
|
}
|
|
229
|
+
function sha256toBigInt(ContractName) {
|
|
230
|
+
const hash = (0, ton_crypto_1.sha256_sync)(ContractName);
|
|
231
|
+
return BigInt('0x' + hash.toString('hex'));
|
|
232
|
+
}
|
|
233
|
+
function mapAssetsToTonAssets(assets) {
|
|
234
|
+
const { jettons, nfts, ton } = aggregateTokens(assets);
|
|
235
|
+
const result = [...jettons, ...nfts];
|
|
236
|
+
if (ton)
|
|
237
|
+
result.push(ton);
|
|
238
|
+
return result.map((asset) => ({
|
|
239
|
+
amount: asset.rawAmount.toString(),
|
|
240
|
+
tokenAddress: asset.address || '',
|
|
241
|
+
assetType: asset.type,
|
|
242
|
+
}));
|
|
243
|
+
}
|
|
244
|
+
async function normalizeAsset(config, input) {
|
|
245
|
+
if (typeof input.generatePayload === 'function') {
|
|
246
|
+
return input;
|
|
247
|
+
}
|
|
248
|
+
const address = 'address' in input && input.address ? input.address : '';
|
|
249
|
+
if ('itemIndex' in input) {
|
|
250
|
+
const args = {
|
|
251
|
+
address,
|
|
252
|
+
tokenType: Struct_1.AssetType.NFT,
|
|
253
|
+
addressType: Struct_1.NFTAddressType.COLLECTION,
|
|
254
|
+
index: BigInt(input.itemIndex),
|
|
255
|
+
};
|
|
256
|
+
return await assets_1.AssetFactory.from(config, args);
|
|
257
|
+
}
|
|
258
|
+
try {
|
|
259
|
+
const ftArgs = {
|
|
260
|
+
address,
|
|
261
|
+
tokenType: Struct_1.AssetType.FT,
|
|
262
|
+
};
|
|
263
|
+
const asset = await assets_1.AssetFactory.from(config, ftArgs);
|
|
264
|
+
const rawAmount = 'rawAmount' in input ? input.rawAmount : undefined;
|
|
265
|
+
const amount = 'amount' in input ? input.amount : 0;
|
|
266
|
+
if (!rawAmount && !amount && asset.type === Struct_1.AssetType.FT) {
|
|
267
|
+
throw (0, errors_1.zeroRawAmountError)(asset.address || 'NATIVE TON');
|
|
268
|
+
}
|
|
269
|
+
return rawAmount ? asset.withRawAmount(rawAmount) : asset.withAmount(amount);
|
|
270
|
+
}
|
|
271
|
+
catch (e) {
|
|
272
|
+
if (e instanceof errors_1.TokenError && e.errorCode === (0, errors_1.zeroRawAmountError)('').errorCode) {
|
|
273
|
+
throw e;
|
|
274
|
+
}
|
|
275
|
+
console.warn('Failed to normalize FT asset', e);
|
|
276
|
+
}
|
|
277
|
+
const itemArgs = {
|
|
278
|
+
address,
|
|
279
|
+
tokenType: Struct_1.AssetType.NFT,
|
|
280
|
+
addressType: Struct_1.NFTAddressType.ITEM,
|
|
281
|
+
};
|
|
282
|
+
return await assets_1.AssetFactory.from(config, itemArgs);
|
|
283
|
+
}
|
|
284
|
+
async function normalizeAssets(config, assets) {
|
|
285
|
+
if (!assets || assets.length === 0)
|
|
286
|
+
return [];
|
|
287
|
+
const normalized = [];
|
|
288
|
+
for (const a of assets) {
|
|
289
|
+
normalized.push(await normalizeAsset(config, a));
|
|
290
|
+
}
|
|
291
|
+
return normalized;
|
|
292
|
+
}
|
|
293
|
+
function getAddressString(cell) {
|
|
294
|
+
return cell?.beginParse().loadAddress().toString({ bounceable: true, testOnly: false }) ?? '';
|
|
295
|
+
}
|
|
296
|
+
function getNumber(len, cell) {
|
|
297
|
+
return cell?.beginParse().loadUint(len) ?? 0;
|
|
298
|
+
}
|
|
299
|
+
function getString(cell) {
|
|
300
|
+
return cell?.beginParse().loadStringTail() ?? '';
|
|
301
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { EvmProxyMsg,
|
|
1
|
+
import { EvmProxyMsg, TACSimulationParams } from '../structs/Struct';
|
|
2
2
|
export declare class Validator {
|
|
3
|
-
static
|
|
3
|
+
static validateTACSimulationParams(req: TACSimulationParams): void;
|
|
4
4
|
static validateEVMProxyMsg(evmProxyMsg: EvmProxyMsg): void;
|
|
5
5
|
static validateTVMAddresses(addresses?: string[]): void;
|
|
6
6
|
static validateEVMAddresses(addresses?: string[]): void;
|
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Validator = void 0;
|
|
4
4
|
const ton_1 = require("@ton/ton");
|
|
5
5
|
const ethers_1 = require("ethers");
|
|
6
|
-
const
|
|
6
|
+
const errors_1 = require("../errors");
|
|
7
7
|
class Validator {
|
|
8
|
-
static
|
|
8
|
+
static validateTACSimulationParams(req) {
|
|
9
9
|
this.validateEVMAddress(req.tacCallParams.target);
|
|
10
|
-
req.evmValidExecutors
|
|
11
|
-
req.tvmValidExecutors
|
|
10
|
+
req.evmValidExecutors?.forEach(this.validateEVMAddress);
|
|
11
|
+
req.tvmValidExecutors?.forEach(this.validateTVMAddress);
|
|
12
12
|
req.tonAssets.forEach((asset) => {
|
|
13
13
|
// if empty then it's native TON
|
|
14
14
|
if (asset.tokenAddress !== '') {
|
|
@@ -31,12 +31,12 @@ class Validator {
|
|
|
31
31
|
ton_1.Address.parse(address); // will throw on error address
|
|
32
32
|
}
|
|
33
33
|
catch {
|
|
34
|
-
throw (0,
|
|
34
|
+
throw (0, errors_1.tvmAddressError)(address);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
static validateEVMAddress(address) {
|
|
38
38
|
if (!address.startsWith('0x') || !(0, ethers_1.isAddress)(address)) {
|
|
39
|
-
throw (0,
|
|
39
|
+
throw (0, errors_1.evmAddressError)(address);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import type { Asset, ContractOpener, SenderAbstraction } from '../interfaces';
|
|
1
2
|
import type { SendResult, ShardTransaction } from '../structs/InternalStruct';
|
|
2
|
-
import type { Asset, ContractOpener } from '../structs/Struct';
|
|
3
3
|
import { Network } from '../structs/Struct';
|
|
4
4
|
import { HighloadWalletV3 } from '../wrappers/HighloadWalletV3';
|
|
5
|
-
import { SenderAbstraction } from './SenderAbstraction';
|
|
6
5
|
export declare class BatchSender implements SenderAbstraction {
|
|
7
6
|
private wallet;
|
|
8
7
|
private secretKey;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import type { Asset, ContractOpener } from '../interfaces';
|
|
2
|
+
import { SenderAbstraction, WalletInstanse } from '../interfaces';
|
|
1
3
|
import type { SendResult, ShardTransaction } from '../structs/InternalStruct';
|
|
2
|
-
import type { Asset, ContractOpener } from '../structs/Struct';
|
|
3
4
|
import { Network } from '../structs/Struct';
|
|
4
|
-
import { SenderAbstraction, WalletInstance } from './SenderAbstraction';
|
|
5
5
|
export declare class RawSender implements SenderAbstraction {
|
|
6
6
|
private wallet;
|
|
7
7
|
private secretKey;
|
|
8
8
|
private maxBatchSize;
|
|
9
|
-
constructor(wallet:
|
|
9
|
+
constructor(wallet: WalletInstanse, secretKey: Buffer, maxBatchSize?: number);
|
|
10
10
|
getBalanceOf(asset: Asset): Promise<bigint>;
|
|
11
11
|
getBalance(contractOpener: ContractOpener): Promise<bigint>;
|
|
12
12
|
sendShardTransactions(shardTransactions: ShardTransaction[], _chain: Network, contractOpener: ContractOpener): Promise<SendResult[]>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { WalletContractV2R1, WalletContractV2R2, WalletContractV3R1, WalletContractV3R2, WalletContractV4, WalletContractV5R1 } from '@ton/ton';
|
|
2
2
|
import { TonConnectUI } from '@tonconnect/ui';
|
|
3
|
+
import { SenderAbstraction } from '../interfaces';
|
|
3
4
|
import { Network } from '../structs/Struct';
|
|
4
5
|
import { HighloadWalletV3 } from '../wrappers/HighloadWalletV3';
|
|
5
|
-
import { SenderAbstraction } from './SenderAbstraction';
|
|
6
6
|
export type WalletVersion = 'V2R1' | 'V2R2' | 'V3R1' | 'V3R2' | 'V4' | 'V5R1' | 'HIGHLOAD_V3';
|
|
7
7
|
export declare const wallets: {
|
|
8
8
|
V2R1: typeof WalletContractV2R1;
|
|
@@ -38,7 +38,7 @@ class SenderFactory {
|
|
|
38
38
|
if (params.version === 'V5R1') {
|
|
39
39
|
// manual setup of wallet id required to support wallet w5 both on mainnet and testnet
|
|
40
40
|
config.walletId = {
|
|
41
|
-
networkGlobalId: params.network === Struct_1.Network.
|
|
41
|
+
networkGlobalId: params.network === Struct_1.Network.MAINNET ? -239 : -3,
|
|
42
42
|
context: {
|
|
43
43
|
walletVersion: 'v5r1',
|
|
44
44
|
workchain: 0,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TonConnectUI } from '@tonconnect/ui';
|
|
2
|
+
import { Asset, ContractOpener, SenderAbstraction } from '../interfaces';
|
|
2
3
|
import type { SendResult, ShardTransaction } from '../structs/InternalStruct';
|
|
3
|
-
import {
|
|
4
|
-
import { SenderAbstraction } from './SenderAbstraction';
|
|
4
|
+
import { Network } from '../structs/Struct';
|
|
5
5
|
export declare class TonConnectSender implements SenderAbstraction {
|
|
6
6
|
readonly tonConnect: TonConnectUI;
|
|
7
7
|
constructor(tonConnect: TonConnectUI);
|