@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
|
@@ -1,38 +1,43 @@
|
|
|
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.LiteSequencerClient = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
4
|
const errors_1 = require("../errors");
|
|
5
|
+
const instances_1 = require("../errors/instances");
|
|
6
|
+
const AxiosHttpClient_1 = require("./AxiosHttpClient");
|
|
9
7
|
const Utils_1 = require("./Utils");
|
|
10
8
|
class LiteSequencerClient {
|
|
11
|
-
constructor(endpoint, maxChunkSize = 100) {
|
|
9
|
+
constructor(endpoint, maxChunkSize = 100, httpClient = new AxiosHttpClient_1.AxiosHttpClient()) {
|
|
12
10
|
this.endpoint = endpoint;
|
|
13
11
|
this.maxChunkSize = maxChunkSize;
|
|
12
|
+
this.httpClient = httpClient;
|
|
14
13
|
}
|
|
15
14
|
async getOperationIdByTransactionHash(transactionHash) {
|
|
16
15
|
const isEthHash = /^0x[a-fA-F0-9]{64}$/.test(transactionHash);
|
|
17
16
|
const path = isEthHash ? 'tac/operation-id' : 'ton/operation-id';
|
|
18
17
|
try {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
if (isEthHash) {
|
|
19
|
+
const response = await this.httpClient.get(new URL(path, this.endpoint).toString(), {
|
|
20
|
+
params: { transactionHash },
|
|
21
|
+
});
|
|
22
|
+
return response.data.response?.operationId || '';
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const response = await this.httpClient.get(new URL(path, this.endpoint).toString(), {
|
|
26
|
+
params: { transactionHash },
|
|
27
|
+
});
|
|
28
|
+
return response.data.response || '';
|
|
29
|
+
}
|
|
23
30
|
}
|
|
24
31
|
catch (error) {
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
return '';
|
|
28
|
-
}
|
|
32
|
+
if (error?.response?.status === 404) {
|
|
33
|
+
return '';
|
|
29
34
|
}
|
|
30
35
|
throw (0, errors_1.operationFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
async getOperationType(operationId) {
|
|
34
39
|
try {
|
|
35
|
-
const response = await
|
|
40
|
+
const response = await this.httpClient.get(new URL('operation-type', this.endpoint).toString(), {
|
|
36
41
|
params: {
|
|
37
42
|
operationId,
|
|
38
43
|
},
|
|
@@ -51,14 +56,12 @@ class LiteSequencerClient {
|
|
|
51
56
|
timestamp: transactionLinker.timestamp,
|
|
52
57
|
};
|
|
53
58
|
try {
|
|
54
|
-
const response = await
|
|
59
|
+
const response = await this.httpClient.post(new URL('ton/operation-id', this.endpoint).toString(), requestBody);
|
|
55
60
|
return response.data.response || '';
|
|
56
61
|
}
|
|
57
62
|
catch (error) {
|
|
58
|
-
if (
|
|
59
|
-
|
|
60
|
-
return '';
|
|
61
|
-
}
|
|
63
|
+
if (error?.response?.status === 404) {
|
|
64
|
+
return '';
|
|
62
65
|
}
|
|
63
66
|
throw (0, errors_1.operationFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
|
|
64
67
|
}
|
|
@@ -69,7 +72,7 @@ class LiteSequencerClient {
|
|
|
69
72
|
}
|
|
70
73
|
try {
|
|
71
74
|
const response = await this.processChunkedRequest(shardsKeys, async (chunk) => {
|
|
72
|
-
const response = await
|
|
75
|
+
const response = await this.httpClient.post(new URL('operation-ids-by-shards-keys', this.endpoint).toString(), {
|
|
73
76
|
shardsKeys: chunk,
|
|
74
77
|
caller: caller,
|
|
75
78
|
});
|
|
@@ -87,7 +90,7 @@ class LiteSequencerClient {
|
|
|
87
90
|
}
|
|
88
91
|
try {
|
|
89
92
|
const response = await this.processChunkedRequest(operationIds, async (chunk) => {
|
|
90
|
-
const response = await
|
|
93
|
+
const response = await this.httpClient.post(new URL('stage-profiling', this.endpoint).toString(), {
|
|
91
94
|
operationIds: chunk,
|
|
92
95
|
}, {
|
|
93
96
|
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
@@ -106,7 +109,7 @@ class LiteSequencerClient {
|
|
|
106
109
|
}
|
|
107
110
|
try {
|
|
108
111
|
const response = await this.processChunkedRequest(operationIds, async (chunk) => {
|
|
109
|
-
const response = await
|
|
112
|
+
const response = await this.httpClient.post(new URL('status', this.endpoint).toString(), {
|
|
110
113
|
operationIds: chunk,
|
|
111
114
|
}, {
|
|
112
115
|
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
@@ -119,10 +122,63 @@ class LiteSequencerClient {
|
|
|
119
122
|
throw (0, errors_1.statusFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
|
-
async
|
|
125
|
+
async convertCurrency(params) {
|
|
126
|
+
try {
|
|
127
|
+
const payload = {
|
|
128
|
+
currency: params.currency,
|
|
129
|
+
value: params.value.toString(),
|
|
130
|
+
};
|
|
131
|
+
const response = await this.httpClient.post(new URL('convert_currency', this.endpoint).toString(), payload, {
|
|
132
|
+
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
133
|
+
});
|
|
134
|
+
const raw = response.data.response;
|
|
135
|
+
return {
|
|
136
|
+
decimals: raw.decimals,
|
|
137
|
+
spotValue: BigInt(raw.spotValue),
|
|
138
|
+
emaValue: BigInt(raw.emaValue),
|
|
139
|
+
currency: raw.currency,
|
|
140
|
+
tacPrice: {
|
|
141
|
+
spot: BigInt(raw.tacPrice.spot),
|
|
142
|
+
ema: BigInt(raw.tacPrice.ema),
|
|
143
|
+
decimals: raw.tacPrice.decimals,
|
|
144
|
+
},
|
|
145
|
+
tonPrice: {
|
|
146
|
+
spot: BigInt(raw.tonPrice.spot),
|
|
147
|
+
ema: BigInt(raw.tonPrice.ema),
|
|
148
|
+
decimals: raw.tonPrice.decimals,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
throw (0, instances_1.convertCurrencyFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
async simulateTACMessage(params) {
|
|
157
|
+
try {
|
|
158
|
+
const response = await this.httpClient.post(new URL('tac/simulator/simulate-message', this.endpoint).toString(), params, {
|
|
159
|
+
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
160
|
+
});
|
|
161
|
+
return response.data.response;
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
throw (0, instances_1.simulationFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async getTVMExecutorFee(params) {
|
|
168
|
+
try {
|
|
169
|
+
const response = await this.httpClient.post(new URL('/ton/calculator/ton-executor-fee', this.endpoint).toString(), params, {
|
|
170
|
+
transformResponse: [Utils_1.toCamelCaseTransformer],
|
|
171
|
+
});
|
|
172
|
+
return response.data.response;
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
throw (0, instances_1.getTONFeeInfoFetchError)(`endpoint ${this.endpoint} failed to complete request`, error);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
async processChunkedRequest(identifiers, requestFn, chunkSize = this.maxChunkSize) {
|
|
123
179
|
const results = [];
|
|
124
|
-
for (let i = 0; i <
|
|
125
|
-
const chunk =
|
|
180
|
+
for (let i = 0; i < identifiers.length; i += chunkSize) {
|
|
181
|
+
const chunk = identifiers.slice(i, i + chunkSize);
|
|
126
182
|
const result = await requestFn(chunk);
|
|
127
183
|
results.push(result);
|
|
128
184
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ILogger } from '../
|
|
1
|
+
import { ILogger } from '../interfaces';
|
|
2
2
|
export declare class ConsoleLogger implements ILogger {
|
|
3
3
|
debug(...arg: unknown[]): void;
|
|
4
4
|
info(...arg: unknown[]): void;
|
|
@@ -6,8 +6,8 @@ export declare class ConsoleLogger implements ILogger {
|
|
|
6
6
|
error(...arg: unknown[]): void;
|
|
7
7
|
}
|
|
8
8
|
export declare class NoopLogger implements ILogger {
|
|
9
|
-
debug(): void;
|
|
10
|
-
info(): void;
|
|
11
|
-
warn(): void;
|
|
12
|
-
error(): void;
|
|
9
|
+
debug(..._arg: unknown[]): void;
|
|
10
|
+
info(..._arg: unknown[]): void;
|
|
11
|
+
warn(..._arg: unknown[]): void;
|
|
12
|
+
error(..._arg: unknown[]): void;
|
|
13
13
|
}
|
|
@@ -17,9 +17,17 @@ class ConsoleLogger {
|
|
|
17
17
|
}
|
|
18
18
|
exports.ConsoleLogger = ConsoleLogger;
|
|
19
19
|
class NoopLogger {
|
|
20
|
-
debug() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
debug(..._arg) {
|
|
21
|
+
void _arg;
|
|
22
|
+
}
|
|
23
|
+
info(..._arg) {
|
|
24
|
+
void _arg;
|
|
25
|
+
}
|
|
26
|
+
warn(..._arg) {
|
|
27
|
+
void _arg;
|
|
28
|
+
}
|
|
29
|
+
error(..._arg) {
|
|
30
|
+
void _arg;
|
|
31
|
+
}
|
|
24
32
|
}
|
|
25
33
|
exports.NoopLogger = NoopLogger;
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
import { ILogger, IOperationTracker } from '../
|
|
2
|
-
import { ExecutionStages, ExecutionStagesByOperationId, Network, OperationIdsByShardsKey, OperationType, SimplifiedStatuses, StatusInfo, StatusInfosByOperationId, TransactionLinker, WaitOptions } from '../structs/Struct';
|
|
3
|
-
export interface ILiteSequencerClientFactory {
|
|
4
|
-
createClients(endpoints: string[]): ILiteSequencerClient[];
|
|
5
|
-
}
|
|
6
|
-
export interface ILiteSequencerClient {
|
|
7
|
-
getOperationType(operationId: string): Promise<OperationType>;
|
|
8
|
-
getOperationId(transactionLinker: TransactionLinker): Promise<string>;
|
|
9
|
-
getOperationIdByTransactionHash(transactionHash: string): Promise<string>;
|
|
10
|
-
getOperationIdsByShardsKeys(shardsKeys: string[], caller: string, chunkSize?: number): Promise<OperationIdsByShardsKey>;
|
|
11
|
-
getStageProfilings(operationIds: string[], chunkSize?: number): Promise<ExecutionStagesByOperationId>;
|
|
12
|
-
getOperationStatuses(operationIds: string[], chunkSize?: number): Promise<StatusInfosByOperationId>;
|
|
13
|
-
}
|
|
1
|
+
import { ILiteSequencerClient, ILiteSequencerClientFactory, ILogger, IOperationTracker } from '../interfaces';
|
|
2
|
+
import { ConvertCurrencyParams, ConvertedCurrencyResult, ExecutionStages, ExecutionStagesByOperationId, GetTVMExecutorFeeParams, Network, OperationIdsByShardsKey, OperationType, SimplifiedStatuses, StatusInfo, StatusInfosByOperationId, SuggestedTVMExecutorFee, TACSimulationParams, TACSimulationResult, TransactionLinker, WaitOptions } from '../structs/Struct';
|
|
14
3
|
export declare class DefaultLiteSequencerClientFactory implements ILiteSequencerClientFactory {
|
|
15
4
|
createClients(endpoints: string[]): ILiteSequencerClient[];
|
|
16
5
|
}
|
|
@@ -27,4 +16,7 @@ export declare class OperationTracker implements IOperationTracker {
|
|
|
27
16
|
getOperationStatuses(operationIds: string[], waitOptions?: WaitOptions<StatusInfosByOperationId>, chunkSize?: number): Promise<StatusInfosByOperationId>;
|
|
28
17
|
getOperationStatus(operationId: string, waitOptions?: WaitOptions<StatusInfo>): Promise<StatusInfo>;
|
|
29
18
|
getSimplifiedOperationStatus(transactionLinker: TransactionLinker): Promise<SimplifiedStatuses>;
|
|
19
|
+
convertCurrency(params: ConvertCurrencyParams, waitOptions?: WaitOptions<ConvertedCurrencyResult>): Promise<ConvertedCurrencyResult>;
|
|
20
|
+
simulateTACMessage(params: TACSimulationParams, waitOptions?: WaitOptions<TACSimulationResult>): Promise<TACSimulationResult>;
|
|
21
|
+
getTVMExecutorFee(params: GetTVMExecutorFeeParams, waitOptions?: WaitOptions<SuggestedTVMExecutorFee>): Promise<SuggestedTVMExecutorFee>;
|
|
30
22
|
}
|
|
@@ -1,24 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OperationTracker = exports.DefaultLiteSequencerClientFactory = void 0;
|
|
4
|
-
const artifacts_1 = require("
|
|
4
|
+
const artifacts_1 = require("../../artifacts");
|
|
5
5
|
const errors_1 = require("../errors");
|
|
6
|
+
const instances_1 = require("../errors/instances");
|
|
6
7
|
const Struct_1 = require("../structs/Struct");
|
|
7
8
|
const LiteSequencerClient_1 = require("./LiteSequencerClient");
|
|
8
9
|
const Logger_1 = require("./Logger");
|
|
9
10
|
const Utils_1 = require("./Utils");
|
|
11
|
+
const Validator_1 = require("./Validator");
|
|
10
12
|
class DefaultLiteSequencerClientFactory {
|
|
11
13
|
createClients(endpoints) {
|
|
12
|
-
return endpoints.map(endpoint => new LiteSequencerClient_1.LiteSequencerClient(endpoint));
|
|
14
|
+
return endpoints.map((endpoint) => new LiteSequencerClient_1.LiteSequencerClient(endpoint));
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
exports.DefaultLiteSequencerClientFactory = DefaultLiteSequencerClientFactory;
|
|
16
18
|
class OperationTracker {
|
|
17
19
|
constructor(network, customLiteSequencerEndpoints, logger = new Logger_1.NoopLogger(), clientFactory = new DefaultLiteSequencerClientFactory()) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
let endpoints;
|
|
21
|
+
if (network === Struct_1.Network.DEV) {
|
|
22
|
+
if (!customLiteSequencerEndpoints || customLiteSequencerEndpoints.length === 0) {
|
|
23
|
+
throw new Error('For DEV network, custom lite sequencer endpoints must be provided');
|
|
24
|
+
}
|
|
25
|
+
endpoints = customLiteSequencerEndpoints;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const artifacts = network === Struct_1.Network.MAINNET ? artifacts_1.mainnet : artifacts_1.testnet;
|
|
29
|
+
endpoints =
|
|
30
|
+
customLiteSequencerEndpoints && customLiteSequencerEndpoints.length !== 0
|
|
31
|
+
? customLiteSequencerEndpoints
|
|
32
|
+
: artifacts.PUBLIC_LITE_SEQUENCER_ENDPOINTS;
|
|
33
|
+
}
|
|
22
34
|
this.clients = clientFactory.createClients(endpoints);
|
|
23
35
|
this.logger = logger;
|
|
24
36
|
}
|
|
@@ -40,7 +52,9 @@ class OperationTracker {
|
|
|
40
52
|
this.logger.error('All endpoints failed to get operation id by transactionHash');
|
|
41
53
|
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
42
54
|
};
|
|
43
|
-
return waitOptions
|
|
55
|
+
return waitOptions
|
|
56
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation ID by transaction hash')
|
|
57
|
+
: await requestFn();
|
|
44
58
|
}
|
|
45
59
|
async getOperationType(operationId, waitOptions) {
|
|
46
60
|
this.logger.debug(`Getting operation type for ${(0, Utils_1.formatObjectForLogging)(operationId)}`);
|
|
@@ -60,7 +74,9 @@ class OperationTracker {
|
|
|
60
74
|
this.logger.error('All endpoints failed to get operation type');
|
|
61
75
|
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
62
76
|
};
|
|
63
|
-
return waitOptions
|
|
77
|
+
return waitOptions
|
|
78
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation type')
|
|
79
|
+
: await requestFn();
|
|
64
80
|
}
|
|
65
81
|
async getOperationId(transactionLinker, waitOptions) {
|
|
66
82
|
this.logger.debug(`Getting operation ID for transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
|
|
@@ -80,7 +96,9 @@ class OperationTracker {
|
|
|
80
96
|
this.logger.error('All endpoints failed to get operation id');
|
|
81
97
|
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
82
98
|
};
|
|
83
|
-
return waitOptions
|
|
99
|
+
return waitOptions
|
|
100
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation ID by transaction linker')
|
|
101
|
+
: await requestFn();
|
|
84
102
|
}
|
|
85
103
|
async getOperationIdsByShardsKeys(shardsKeys, caller, waitOptions, chunkSize = 100) {
|
|
86
104
|
this.logger.debug(`Getting operation IDs for shards keys: ${(0, Utils_1.formatObjectForLogging)(shardsKeys)}`);
|
|
@@ -101,7 +119,9 @@ class OperationTracker {
|
|
|
101
119
|
this.logger.error('All endpoints failed to get operation ids by shards keys');
|
|
102
120
|
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
103
121
|
};
|
|
104
|
-
return waitOptions
|
|
122
|
+
return waitOptions
|
|
123
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation IDs by shards keys')
|
|
124
|
+
: await requestFn();
|
|
105
125
|
}
|
|
106
126
|
async getStageProfiling(operationId, waitOptions) {
|
|
107
127
|
this.logger.debug(`Getting stage profiling for operation ${operationId}`);
|
|
@@ -126,7 +146,9 @@ class OperationTracker {
|
|
|
126
146
|
this.logger.error('All endpoints failed to get stage profiling');
|
|
127
147
|
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
128
148
|
};
|
|
129
|
-
return waitOptions
|
|
149
|
+
return waitOptions
|
|
150
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting stage profiling')
|
|
151
|
+
: await requestFn();
|
|
130
152
|
}
|
|
131
153
|
async getStageProfilings(operationIds, waitOptions, chunkSize = 100) {
|
|
132
154
|
this.logger.debug(`Getting stage profilings for operations: ${operationIds.join(', ')}`);
|
|
@@ -147,7 +169,9 @@ class OperationTracker {
|
|
|
147
169
|
this.logger.error('All endpoints failed to get stage profilings');
|
|
148
170
|
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
149
171
|
};
|
|
150
|
-
return waitOptions
|
|
172
|
+
return waitOptions
|
|
173
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting stage profilings')
|
|
174
|
+
: await requestFn();
|
|
151
175
|
}
|
|
152
176
|
async getOperationStatuses(operationIds, waitOptions, chunkSize = 100) {
|
|
153
177
|
this.logger.debug(`Getting operation statuses for operations: ${(0, Utils_1.formatObjectForLogging)(operationIds)}`);
|
|
@@ -168,7 +192,9 @@ class OperationTracker {
|
|
|
168
192
|
this.logger.error('All endpoints failed to get operation statuses');
|
|
169
193
|
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
170
194
|
};
|
|
171
|
-
return waitOptions
|
|
195
|
+
return waitOptions
|
|
196
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation statuses')
|
|
197
|
+
: await requestFn();
|
|
172
198
|
}
|
|
173
199
|
async getOperationStatus(operationId, waitOptions) {
|
|
174
200
|
this.logger.debug(`Getting operation status for ${(0, Utils_1.formatObjectForLogging)(operationId)}`);
|
|
@@ -193,7 +219,9 @@ class OperationTracker {
|
|
|
193
219
|
this.logger.error('All endpoints failed to get operation status');
|
|
194
220
|
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
195
221
|
};
|
|
196
|
-
return waitOptions
|
|
222
|
+
return waitOptions
|
|
223
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting operation status')
|
|
224
|
+
: await requestFn();
|
|
197
225
|
}
|
|
198
226
|
async getSimplifiedOperationStatus(transactionLinker) {
|
|
199
227
|
this.logger.debug(`Getting simplified operation status for transaction linker: ${(0, Utils_1.formatObjectForLogging)(transactionLinker)}`);
|
|
@@ -202,9 +230,7 @@ class OperationTracker {
|
|
|
202
230
|
this.logger.warn('Operation ID not found');
|
|
203
231
|
return Struct_1.SimplifiedStatuses.OPERATION_ID_NOT_FOUND;
|
|
204
232
|
}
|
|
205
|
-
this.logger.debug(`Operation ID: ${operationId}`);
|
|
206
233
|
const operationType = await this.getOperationType(operationId);
|
|
207
|
-
this.logger.debug(`Operation type: ${operationType}`);
|
|
208
234
|
if (operationType == Struct_1.OperationType.PENDING || operationType == Struct_1.OperationType.UNKNOWN) {
|
|
209
235
|
return Struct_1.SimplifiedStatuses.PENDING;
|
|
210
236
|
}
|
|
@@ -213,5 +239,75 @@ class OperationTracker {
|
|
|
213
239
|
}
|
|
214
240
|
return Struct_1.SimplifiedStatuses.SUCCESSFUL;
|
|
215
241
|
}
|
|
242
|
+
async convertCurrency(params, waitOptions) {
|
|
243
|
+
if (params.value <= 0n) {
|
|
244
|
+
throw instances_1.convertCurrencyNegativeOrZeroValueError;
|
|
245
|
+
}
|
|
246
|
+
this.logger.debug(`Converting currency: ${(0, Utils_1.formatObjectForLogging)(params)}`);
|
|
247
|
+
const requestFn = async () => {
|
|
248
|
+
let lastError;
|
|
249
|
+
for (const client of this.clients) {
|
|
250
|
+
try {
|
|
251
|
+
const result = await client.convertCurrency(params);
|
|
252
|
+
this.logger.debug(`Conversion result retrieved successfully`);
|
|
253
|
+
return result;
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
this.logger.warn(`Failed to convert currency using one of the endpoints`);
|
|
257
|
+
lastError = error;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
this.logger.error('All endpoints failed to convert currency');
|
|
261
|
+
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
262
|
+
};
|
|
263
|
+
return waitOptions
|
|
264
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Converting currency')
|
|
265
|
+
: await requestFn();
|
|
266
|
+
}
|
|
267
|
+
async simulateTACMessage(params, waitOptions) {
|
|
268
|
+
Validator_1.Validator.validateTACSimulationParams(params);
|
|
269
|
+
this.logger.debug(`Simulating TAC message: ${(0, Utils_1.formatObjectForLogging)(params)}`);
|
|
270
|
+
const requestFn = async () => {
|
|
271
|
+
let lastError;
|
|
272
|
+
for (const client of this.clients) {
|
|
273
|
+
try {
|
|
274
|
+
const result = await client.simulateTACMessage(params);
|
|
275
|
+
this.logger.debug(`Simulation result retrieved successfully`);
|
|
276
|
+
return result;
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
this.logger.warn(`Failed to simulate TAC message using one of the endpoints`);
|
|
280
|
+
lastError = error;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
this.logger.error('All endpoints failed to simulate TAC message');
|
|
284
|
+
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
285
|
+
};
|
|
286
|
+
return waitOptions
|
|
287
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Simulating TAC message')
|
|
288
|
+
: await requestFn();
|
|
289
|
+
}
|
|
290
|
+
async getTVMExecutorFee(params, waitOptions) {
|
|
291
|
+
this.logger.debug(`get TVM executor fee: ${(0, Utils_1.formatObjectForLogging)(params)}`);
|
|
292
|
+
const requestFn = async () => {
|
|
293
|
+
let lastError;
|
|
294
|
+
for (const client of this.clients) {
|
|
295
|
+
try {
|
|
296
|
+
const result = await client.getTVMExecutorFee(params);
|
|
297
|
+
this.logger.debug(`Suggested TVM executor fee retrieved successfully`);
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
this.logger.warn(`Failed to get TVM executor fee using one of the endpoints`);
|
|
302
|
+
lastError = error;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
this.logger.error('All endpoints failed to get TVM executor fee');
|
|
306
|
+
throw (0, errors_1.allEndpointsFailedError)(lastError);
|
|
307
|
+
};
|
|
308
|
+
return waitOptions
|
|
309
|
+
? await (0, Utils_1.waitUntilSuccess)(waitOptions, requestFn, 'OperationTracker: Getting TVM executor fee')
|
|
310
|
+
: await requestFn();
|
|
311
|
+
}
|
|
216
312
|
}
|
|
217
313
|
exports.OperationTracker = OperationTracker;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IConfiguration, ILogger, IOperationTracker, ISimulator } from '../interfaces';
|
|
2
|
+
import type { SenderAbstraction } from '../sender';
|
|
3
|
+
import { CrosschainTx, ExecutionFeeEstimationResult } from '../structs/Struct';
|
|
4
|
+
export declare class Simulator implements ISimulator {
|
|
5
|
+
private readonly config;
|
|
6
|
+
private readonly operationTracker;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(config: IConfiguration, operationTracker: IOperationTracker, logger?: ILogger);
|
|
9
|
+
getSimulationsInfo(sender: SenderAbstraction, txs: CrosschainTx[]): Promise<ExecutionFeeEstimationResult[]>;
|
|
10
|
+
getSimulationInfo(sender: SenderAbstraction, tx: CrosschainTx): Promise<ExecutionFeeEstimationResult>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Simulator = void 0;
|
|
4
|
+
const ton_1 = require("@ton/ton");
|
|
5
|
+
const Logger_1 = require("./Logger");
|
|
6
|
+
const Utils_1 = require("./Utils");
|
|
7
|
+
const Validator_1 = require("./Validator");
|
|
8
|
+
class Simulator {
|
|
9
|
+
constructor(config, operationTracker, logger = new Logger_1.NoopLogger()) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.operationTracker = operationTracker;
|
|
12
|
+
this.logger = logger;
|
|
13
|
+
}
|
|
14
|
+
async getSimulationsInfo(sender, txs) {
|
|
15
|
+
this.logger.debug(`Simulating ${txs.length} TAC messages`);
|
|
16
|
+
const results = [];
|
|
17
|
+
for (const tx of txs) {
|
|
18
|
+
const result = await this.getSimulationInfo(sender, tx);
|
|
19
|
+
results.push(result);
|
|
20
|
+
}
|
|
21
|
+
return results;
|
|
22
|
+
}
|
|
23
|
+
async getSimulationInfo(sender, tx) {
|
|
24
|
+
this.logger.debug('Getting simulation info');
|
|
25
|
+
const { evmProxyMsg, assets = [], options = {} } = tx;
|
|
26
|
+
const { evmValidExecutors = this.config.TACParams.trustedTACExecutors, tvmValidExecutors = this.config.TACParams.trustedTONExecutors, calculateRollbackFee = true, allowSimulationError = false, } = options;
|
|
27
|
+
Validator_1.Validator.validateEVMAddress(evmProxyMsg.evmTargetAddress);
|
|
28
|
+
Validator_1.Validator.validateEVMAddresses(evmValidExecutors);
|
|
29
|
+
Validator_1.Validator.validateTVMAddresses(tvmValidExecutors);
|
|
30
|
+
const aggregatedData = (0, Utils_1.aggregateTokens)(assets);
|
|
31
|
+
const shardCount = aggregatedData.jettons.length || 1;
|
|
32
|
+
const transactionLinker = (0, Utils_1.generateTransactionLinker)(sender.getSenderAddress(), shardCount);
|
|
33
|
+
const tacSimulationParams = {
|
|
34
|
+
tacCallParams: {
|
|
35
|
+
arguments: evmProxyMsg.encodedParameters ?? '0x',
|
|
36
|
+
methodName: (0, Utils_1.formatSolidityMethodName)(evmProxyMsg.methodName),
|
|
37
|
+
target: evmProxyMsg.evmTargetAddress,
|
|
38
|
+
},
|
|
39
|
+
evmValidExecutors,
|
|
40
|
+
tvmValidExecutors,
|
|
41
|
+
extraData: '0x',
|
|
42
|
+
shardsKey: transactionLinker.shardsKey,
|
|
43
|
+
tonAssets: (0, Utils_1.mapAssetsToTonAssets)(assets),
|
|
44
|
+
tonCaller: transactionLinker.caller,
|
|
45
|
+
calculateRollbackFee,
|
|
46
|
+
};
|
|
47
|
+
const simulation = await this.operationTracker.simulateTACMessage(tacSimulationParams);
|
|
48
|
+
this.logger.debug(`TAC simulation ${simulation.simulationStatus ? 'success' : 'failed'}`);
|
|
49
|
+
const isRoundTrip = options.isRoundTrip ?? (assets.length !== 0 || simulation.outMessages?.length !== 0);
|
|
50
|
+
const CrossChainLayerC = this.config.artifacts.ton.wrappers.CrossChainLayer;
|
|
51
|
+
const crossChainLayer = this.config.TONParams.contractOpener.open(CrossChainLayerC.createFromAddress(ton_1.Address.parse(this.config.TONParams.crossChainLayerAddress)));
|
|
52
|
+
const fullStateCCL = await crossChainLayer.getFullData();
|
|
53
|
+
const feeParams = {
|
|
54
|
+
isRoundTrip,
|
|
55
|
+
gasLimit: simulation.simulationStatus ? simulation.estimatedGas : 0n,
|
|
56
|
+
protocolFee: BigInt((0, ton_1.toNano)(fullStateCCL.tacProtocolFee)) +
|
|
57
|
+
BigInt(isRoundTrip) * BigInt((0, ton_1.toNano)(fullStateCCL.tonProtocolFee)),
|
|
58
|
+
evmExecutorFee: BigInt(simulation.suggestedTacExecutionFee),
|
|
59
|
+
tvmExecutorFee: BigInt(simulation.suggestedTonExecutionFee) * BigInt(isRoundTrip),
|
|
60
|
+
};
|
|
61
|
+
if (!simulation.simulationStatus && !allowSimulationError) {
|
|
62
|
+
throw simulation;
|
|
63
|
+
}
|
|
64
|
+
if (allowSimulationError && !simulation.simulationStatus) {
|
|
65
|
+
this.logger.info('Simulation failed but allowSimulationError is true, returning partial fee params');
|
|
66
|
+
}
|
|
67
|
+
return { feeParams, simulation };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.Simulator = Simulator;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { ILogger } from '../interfaces';
|
|
1
2
|
import { TxFinalizerConfig } from '../structs/InternalStruct';
|
|
2
|
-
import { ILogger } from '../structs/Services';
|
|
3
3
|
import { ExecutionStages, Network, TransactionLinker } from '../structs/Struct';
|
|
4
4
|
export declare function startTracking(transactionLinker: TransactionLinker, network: Network, options?: {
|
|
5
5
|
customLiteSequencerEndpoints?: string[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Wallet } from 'ethers';
|
|
2
|
+
import { Asset, IConfiguration, ILogger, IOperationTracker, ITACTransactionManager } from '../interfaces';
|
|
3
|
+
export declare class TACTransactionManager implements ITACTransactionManager {
|
|
4
|
+
private readonly config;
|
|
5
|
+
private readonly operationTracker;
|
|
6
|
+
private readonly logger;
|
|
7
|
+
constructor(config: IConfiguration, operationTracker: IOperationTracker, logger?: ILogger);
|
|
8
|
+
private approveAsset;
|
|
9
|
+
bridgeTokensToTON(signer: Wallet, value: bigint, tonTarget: string, assets?: Asset[], tvmExecutorFee?: bigint, tvmValidExecutors?: string[]): Promise<string>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TACTransactionManager = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const assets_1 = require("../assets");
|
|
6
|
+
const Struct_1 = require("../structs/Struct");
|
|
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 TACTransactionManager {
|
|
12
|
+
constructor(config, operationTracker, logger = new Logger_1.NoopLogger()) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.operationTracker = operationTracker;
|
|
15
|
+
this.logger = logger;
|
|
16
|
+
}
|
|
17
|
+
async approveAsset(asset, signer, spenderAddress) {
|
|
18
|
+
const evmAddress = await asset.getEVMAddress();
|
|
19
|
+
if (asset.type === Struct_1.AssetType.FT) {
|
|
20
|
+
this.logger.debug(`Approving FT ${evmAddress} for ${spenderAddress}`);
|
|
21
|
+
const erc20Abi = this.config.artifacts.tac.compilationArtifacts.IERC20WithDecimals.abi;
|
|
22
|
+
const contract = new ethers_1.ethers.Contract(evmAddress, erc20Abi, this.config.TACParams.provider);
|
|
23
|
+
const tx = await contract.connect(signer).approve(spenderAddress, asset.rawAmount);
|
|
24
|
+
await tx.wait();
|
|
25
|
+
}
|
|
26
|
+
else if (asset.type === Struct_1.AssetType.NFT) {
|
|
27
|
+
this.logger.debug(`Approving NFT ${evmAddress} for ${spenderAddress}`);
|
|
28
|
+
const erc721Abi = this.config.artifacts.tac.compilationArtifacts.IERC721.abi;
|
|
29
|
+
const contract = new ethers_1.ethers.Contract(evmAddress, erc721Abi, this.config.TACParams.provider);
|
|
30
|
+
const tx = await contract.connect(signer).approve(spenderAddress, asset.addresses.index);
|
|
31
|
+
await tx.wait();
|
|
32
|
+
}
|
|
33
|
+
this.logger.debug(`Approved ${evmAddress} for ${spenderAddress}`);
|
|
34
|
+
}
|
|
35
|
+
async bridgeTokensToTON(signer, value, tonTarget, assets = [], tvmExecutorFee, tvmValidExecutors) {
|
|
36
|
+
this.logger.debug('Bridging tokens to TON');
|
|
37
|
+
Validator_1.Validator.validateTVMAddress(tonTarget);
|
|
38
|
+
// Add native TAC asset if value > 0
|
|
39
|
+
const tonAssets = [...assets];
|
|
40
|
+
if (value > 0n) {
|
|
41
|
+
tonAssets.push((await assets_1.AssetFactory.from(this.config, {
|
|
42
|
+
address: await this.config.nativeTACAddress(),
|
|
43
|
+
tokenType: Struct_1.AssetType.FT,
|
|
44
|
+
})).withRawAmount(value));
|
|
45
|
+
}
|
|
46
|
+
// Calculate executor fee if not provided
|
|
47
|
+
if (!tvmExecutorFee) {
|
|
48
|
+
const feeParams = {
|
|
49
|
+
tonAssets: (0, Utils_1.mapAssetsToTonAssets)(tonAssets),
|
|
50
|
+
feeSymbol: Consts_1.TAC_SYMBOL,
|
|
51
|
+
tvmValidExecutors: tvmValidExecutors ?? [],
|
|
52
|
+
};
|
|
53
|
+
const suggestedFee = await this.operationTracker.getTVMExecutorFee(feeParams);
|
|
54
|
+
this.logger.debug(`Suggested TON executor fee: ${(0, Utils_1.formatObjectForLogging)(suggestedFee)}`);
|
|
55
|
+
tvmExecutorFee = BigInt(suggestedFee.inTAC);
|
|
56
|
+
}
|
|
57
|
+
// Approve all assets
|
|
58
|
+
const crossChainLayerAddress = await this.config.TACParams.crossChainLayer.getAddress();
|
|
59
|
+
for (const asset of assets) {
|
|
60
|
+
await this.approveAsset(asset, signer, crossChainLayerAddress);
|
|
61
|
+
}
|
|
62
|
+
const protocolFee = await this.config.TACParams.crossChainLayer.getProtocolFee();
|
|
63
|
+
const shardsKey = BigInt(Math.round(Math.random() * 1e18));
|
|
64
|
+
this.logger.debug(`Shards key: ${shardsKey}, Protocol fee: ${protocolFee}`);
|
|
65
|
+
// Prepare bridge data
|
|
66
|
+
const [toBridge, toBridgeNFT] = await Promise.all([
|
|
67
|
+
Promise.all(assets
|
|
68
|
+
.filter((a) => a.type === Struct_1.AssetType.FT)
|
|
69
|
+
.map(async (a) => ({
|
|
70
|
+
evmAddress: await a.getEVMAddress(),
|
|
71
|
+
amount: a.rawAmount,
|
|
72
|
+
}))),
|
|
73
|
+
Promise.all(assets
|
|
74
|
+
.filter((a) => a.type === Struct_1.AssetType.NFT)
|
|
75
|
+
.map(async (a) => ({
|
|
76
|
+
evmAddress: await a.getEVMAddress(),
|
|
77
|
+
amount: 1n,
|
|
78
|
+
tokenId: a.addresses.index,
|
|
79
|
+
}))),
|
|
80
|
+
]);
|
|
81
|
+
const outMessage = {
|
|
82
|
+
shardsKey,
|
|
83
|
+
tvmTarget: tonTarget,
|
|
84
|
+
tvmPayload: '',
|
|
85
|
+
tvmProtocolFee: protocolFee,
|
|
86
|
+
tvmExecutorFee,
|
|
87
|
+
tvmValidExecutors: this.config.getTrustedTONExecutors,
|
|
88
|
+
toBridge,
|
|
89
|
+
toBridgeNFT,
|
|
90
|
+
};
|
|
91
|
+
const totalValue = value + BigInt(outMessage.tvmProtocolFee) + BigInt(outMessage.tvmExecutorFee);
|
|
92
|
+
this.logger.debug(`Total value: ${totalValue}`);
|
|
93
|
+
const tx = await this.config.TACParams.crossChainLayer
|
|
94
|
+
.connect(signer)
|
|
95
|
+
.sendMessage(1n, this.config.artifacts.tac.utils.encodeOutMessageV1(outMessage), { value: totalValue });
|
|
96
|
+
await tx.wait();
|
|
97
|
+
this.logger.debug(`Transaction hash: ${tx.hash}`);
|
|
98
|
+
return tx.hash;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.TACTransactionManager = TACTransactionManager;
|