@tonappchain/sdk 0.7.0-rc8 → 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 +15 -17
- package/dist/{assets → src/assets}/FT.js +103 -56
- package/dist/{assets → src/assets}/NFT.d.ts +15 -16
- package/dist/{assets → src/assets}/NFT.js +62 -34
- 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 -24
- package/dist/sdk/TacSdk.js +0 -101
- 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 -41
- 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,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReplacementHelper = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
class ReplacementHelper {
|
|
6
|
+
/**
|
|
7
|
+
* Helper to create dynamic amount replacement for a specific parameter
|
|
8
|
+
* @param paramIndex - The index of the parameter to replace
|
|
9
|
+
* @param token - The token to replace
|
|
10
|
+
* @param balanceAddress - The address to replace the parameter with
|
|
11
|
+
* @returns The amount replacement
|
|
12
|
+
*/
|
|
13
|
+
createAmountReplacement(paramIndex, token, balanceAddress) {
|
|
14
|
+
// Calculate position in calldata (4 bytes selector + 32 bytes per param)
|
|
15
|
+
const position = 4 + paramIndex * 32;
|
|
16
|
+
return {
|
|
17
|
+
position,
|
|
18
|
+
len: 32, // uint256 is 32 bytes
|
|
19
|
+
token,
|
|
20
|
+
balanceAddress,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Advanced replacement calculator - calculates position and length for any parameter type
|
|
25
|
+
* Required that you have added the contract interface first using addContractInterface().
|
|
26
|
+
* If human readable abi is used, need to provide function and params names also
|
|
27
|
+
* @param contractAddress - The address of the contract to call
|
|
28
|
+
* @param functionName - The name of the function to call
|
|
29
|
+
* @param parameterName - The name of the parameter to replace
|
|
30
|
+
* @param token - The token to replace
|
|
31
|
+
* @param balanceAddress - The address to replace the parameter with
|
|
32
|
+
* @returns The replacement data
|
|
33
|
+
*/
|
|
34
|
+
calculateReplacementData(contractAddress, functionName, parameterName, token, balanceAddress, contractInterfaces) {
|
|
35
|
+
const contractInterface = contractInterfaces.get(contractAddress.toLowerCase());
|
|
36
|
+
if (!contractInterface) {
|
|
37
|
+
throw new Error(`Contract interface not found for address: ${contractAddress}. Please add it first using addContractInterface().`);
|
|
38
|
+
}
|
|
39
|
+
let functionFragment;
|
|
40
|
+
try {
|
|
41
|
+
functionFragment = contractInterface.getFunction(functionName);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
throw new Error(`Function '${functionName}' not found in contract interface for ${contractAddress}`);
|
|
45
|
+
}
|
|
46
|
+
if (!functionFragment) {
|
|
47
|
+
throw new Error(`Function '${functionName}' not found in contract interface for ${contractAddress}`);
|
|
48
|
+
}
|
|
49
|
+
// Find the parameter by name
|
|
50
|
+
const paramIndex = functionFragment.inputs.findIndex((input) => input.name === parameterName);
|
|
51
|
+
if (paramIndex === -1) {
|
|
52
|
+
const availableParams = functionFragment.inputs
|
|
53
|
+
.map((input) => `${input.name} (${input.type})`)
|
|
54
|
+
.join(', ');
|
|
55
|
+
throw new Error(`Parameter '${parameterName}' not found in function '${functionName}'. Available parameters: ${availableParams}`);
|
|
56
|
+
}
|
|
57
|
+
// Calculate position and length based on parameter type
|
|
58
|
+
const { position, len } = this._calculateParamPositionAndLength(functionFragment.inputs, paramIndex);
|
|
59
|
+
return {
|
|
60
|
+
position,
|
|
61
|
+
len,
|
|
62
|
+
token,
|
|
63
|
+
balanceAddress,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get replacement helper - shows available functions and parameters for a contract
|
|
68
|
+
* Required that you have added the contract interface first using addContractInterface().
|
|
69
|
+
* If human readable abi is used, need to provide function and params names also
|
|
70
|
+
* @param contractAddress - The address of the contract to call
|
|
71
|
+
* @returns The replacement helper
|
|
72
|
+
*/
|
|
73
|
+
getReplacementHelper(contractAddress, contractInterfaces) {
|
|
74
|
+
const contractInterface = contractInterfaces.get(contractAddress.toLowerCase());
|
|
75
|
+
if (!contractInterface) {
|
|
76
|
+
throw new Error(`Contract interface not found for address: ${contractAddress}. Please add it first using addContractInterface().`);
|
|
77
|
+
}
|
|
78
|
+
const functions = contractInterface.fragments
|
|
79
|
+
.filter((fragment) => fragment.type === 'function')
|
|
80
|
+
.map((fragment) => {
|
|
81
|
+
const func = fragment;
|
|
82
|
+
return {
|
|
83
|
+
name: func.name,
|
|
84
|
+
signature: func.format('full'),
|
|
85
|
+
parameters: func.inputs.map((input, index) => {
|
|
86
|
+
const canReplace = this._canParameterBeReplaced(input.type);
|
|
87
|
+
return {
|
|
88
|
+
name: input.name || `param${index}`,
|
|
89
|
+
type: input.type,
|
|
90
|
+
index,
|
|
91
|
+
canReplace: canReplace.canReplace,
|
|
92
|
+
reason: canReplace.reason,
|
|
93
|
+
};
|
|
94
|
+
}),
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
contractAddress,
|
|
99
|
+
functions,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Interactive replacement builder - helps build replacement step by step
|
|
104
|
+
* @param contractAddress - The address of the contract to call
|
|
105
|
+
* @param functionName - The name of the function to call
|
|
106
|
+
* @param parameterName - The name of the parameter to replace
|
|
107
|
+
* @param token - The token to replace
|
|
108
|
+
* @param balanceAddress - The address to replace the parameter with
|
|
109
|
+
* @param options - The options of the interactive replacement builder
|
|
110
|
+
* @returns The interactive replacement builder
|
|
111
|
+
*/
|
|
112
|
+
buildReplacementInteractive(contractAddress, functionName, parameterName, token, balanceAddress, contractInterfaces, options = {}) {
|
|
113
|
+
const { validate = true } = options;
|
|
114
|
+
// Get the replacement data
|
|
115
|
+
const replacement = this.calculateReplacementData(contractAddress, functionName, parameterName, token, balanceAddress, contractInterfaces);
|
|
116
|
+
// Get function info for calculation details
|
|
117
|
+
const contractInterface = contractInterfaces.get(contractAddress.toLowerCase());
|
|
118
|
+
if (!contractInterface) {
|
|
119
|
+
throw new Error(`Contract interface not found for address: ${contractAddress}`);
|
|
120
|
+
}
|
|
121
|
+
const functionFragment = contractInterface.getFunction(functionName);
|
|
122
|
+
if (!functionFragment) {
|
|
123
|
+
throw new Error(`Function '${functionName}' not found in contract interface for ${contractAddress}`);
|
|
124
|
+
}
|
|
125
|
+
const paramIndex = functionFragment.inputs.findIndex((input) => input.name === parameterName);
|
|
126
|
+
const param = functionFragment.inputs[paramIndex];
|
|
127
|
+
const calculation = {
|
|
128
|
+
functionSignature: functionFragment.format('full'),
|
|
129
|
+
parameterInfo: {
|
|
130
|
+
name: parameterName,
|
|
131
|
+
type: param.type,
|
|
132
|
+
index: paramIndex,
|
|
133
|
+
position: replacement.position,
|
|
134
|
+
length: replacement.len,
|
|
135
|
+
},
|
|
136
|
+
positionCalculation: `Position = 4 bytes (selector) + ${paramIndex} * 32 bytes = ${replacement.position} bytes`,
|
|
137
|
+
};
|
|
138
|
+
// Validation
|
|
139
|
+
const validation = {
|
|
140
|
+
isValid: true,
|
|
141
|
+
warnings: [],
|
|
142
|
+
suggestions: [],
|
|
143
|
+
};
|
|
144
|
+
if (validate) {
|
|
145
|
+
// Check if parameter type is suitable for replacement
|
|
146
|
+
const typeCheck = this._canParameterBeReplaced(param.type);
|
|
147
|
+
if (!typeCheck.canReplace) {
|
|
148
|
+
validation.isValid = false;
|
|
149
|
+
validation.warnings.push(`Parameter type '${param.type}' ${typeCheck.reason}`);
|
|
150
|
+
}
|
|
151
|
+
// Check if it's a reasonable parameter to replace
|
|
152
|
+
if (param.name.toLowerCase().includes('amount') || param.name.toLowerCase().includes('value')) {
|
|
153
|
+
validation.suggestions.push(`✅ Parameter '${param.name}' looks suitable for dynamic replacement`);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
validation.warnings.push(`⚠️ Parameter '${param.name}' might not be intended for amount replacement`);
|
|
157
|
+
}
|
|
158
|
+
// Check token address
|
|
159
|
+
if (!ethers_1.ethers.isAddress(token)) {
|
|
160
|
+
validation.isValid = false;
|
|
161
|
+
validation.warnings.push(`Invalid token address: ${token}`);
|
|
162
|
+
}
|
|
163
|
+
if (!ethers_1.ethers.isAddress(balanceAddress)) {
|
|
164
|
+
validation.isValid = false;
|
|
165
|
+
validation.warnings.push(`Invalid balance address: ${balanceAddress}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
replacement,
|
|
170
|
+
calculation,
|
|
171
|
+
validation,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Private helper to calculate position and length for complex parameter types
|
|
176
|
+
* @param inputs - The inputs of the function
|
|
177
|
+
* @param targetIndex - The index of the parameter to calculate the position and length for
|
|
178
|
+
* @returns The position and length of the parameter
|
|
179
|
+
*/
|
|
180
|
+
_calculateParamPositionAndLength(inputs, targetIndex) {
|
|
181
|
+
// For now, we support simple types. Complex types (arrays, structs) would need more sophisticated calculation
|
|
182
|
+
// This is a simplified version that works for basic types like uint256, address, etc.
|
|
183
|
+
let position = 4; // Start after function selector
|
|
184
|
+
for (let i = 0; i < targetIndex; i++) {
|
|
185
|
+
const paramType = inputs[i].type;
|
|
186
|
+
position += this._getTypeSize(paramType);
|
|
187
|
+
}
|
|
188
|
+
const targetType = inputs[targetIndex].type;
|
|
189
|
+
const len = this._getTypeSize(targetType);
|
|
190
|
+
return { position, len };
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get the size in bytes for a parameter type
|
|
194
|
+
* @param type - The type of the parameter
|
|
195
|
+
* @returns The size in bytes of the parameter
|
|
196
|
+
*/
|
|
197
|
+
_getTypeSize(type) {
|
|
198
|
+
// Basic types are all 32 bytes in calldata (due to ABI encoding)
|
|
199
|
+
if (type.startsWith('uint') ||
|
|
200
|
+
type.startsWith('int') ||
|
|
201
|
+
type === 'address' ||
|
|
202
|
+
type === 'bool' ||
|
|
203
|
+
type.startsWith('bytes32')) {
|
|
204
|
+
return 32;
|
|
205
|
+
}
|
|
206
|
+
// Dynamic types (bytes, string) are also 32 bytes for the offset
|
|
207
|
+
if (type === 'bytes' || type === 'string') {
|
|
208
|
+
return 32;
|
|
209
|
+
}
|
|
210
|
+
// Arrays are 32 bytes for the offset
|
|
211
|
+
if (type.includes('[]')) {
|
|
212
|
+
return 32;
|
|
213
|
+
}
|
|
214
|
+
// Default to 32 bytes for unknown types
|
|
215
|
+
return 32;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check if a parameter type can be replaced with a balance
|
|
219
|
+
* @param type - The type of the parameter
|
|
220
|
+
* @returns The can replace and reason of the parameter
|
|
221
|
+
*/
|
|
222
|
+
_canParameterBeReplaced(type) {
|
|
223
|
+
if (type.startsWith('uint') && !type.includes('[]')) {
|
|
224
|
+
return { canReplace: true };
|
|
225
|
+
}
|
|
226
|
+
if (type.startsWith('int') && !type.includes('[]')) {
|
|
227
|
+
return { canReplace: true, reason: 'but be careful with signed integers' };
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
canReplace: false,
|
|
231
|
+
reason: `is not suitable for balance replacement. Only uint/int types are supported.`,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
exports.ReplacementHelper = ReplacementHelper;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IConfiguration } from '../
|
|
2
|
-
import {
|
|
1
|
+
import { Asset, IConfiguration } from '../interfaces';
|
|
2
|
+
import { AssetFromFTArg, AssetFromNFTCollectionArg, AssetFromNFTItemArg, EVMAddress, NFTAddressType, TVMAddress } from '../structs/Struct';
|
|
3
3
|
export declare class AssetFactory {
|
|
4
4
|
static from(configuration: IConfiguration, token: AssetFromFTArg | AssetFromNFTCollectionArg | AssetFromNFTItemArg): Promise<Asset>;
|
|
5
5
|
static createFTAsset(configuration: IConfiguration, address: TVMAddress | EVMAddress): Promise<Asset>;
|
|
@@ -16,7 +16,7 @@ class AssetFactory {
|
|
|
16
16
|
}
|
|
17
17
|
const cachedAsset = AssetCache_1.AssetCache.get(token);
|
|
18
18
|
if (cachedAsset) {
|
|
19
|
-
return cachedAsset.clone.
|
|
19
|
+
return cachedAsset.clone.withRawAmount(0n);
|
|
20
20
|
}
|
|
21
21
|
const asset = token.tokenType === Struct_1.AssetType.FT
|
|
22
22
|
? await this.createFTAsset(configuration, token.address)
|
|
@@ -1,37 +1,35 @@
|
|
|
1
1
|
import { SandboxContract } from '@ton/sandbox';
|
|
2
2
|
import { Cell, OpenedContract } from '@ton/ton';
|
|
3
|
+
import { JettonMinterData, JettonWallet } from '../../artifacts/tonTypes';
|
|
4
|
+
import { Asset, IConfiguration } from '../interfaces';
|
|
3
5
|
import { AssetOpType } from '../structs/InternalStruct';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { Asset, Origin } from '../structs/Struct';
|
|
7
|
-
import { JettonWallet } from '../wrappers/JettonWallet';
|
|
6
|
+
import { AssetType, EVMAddress, FeeParams, FTOriginAndData, TVMAddress, UserWalletBalanceExtended } from '../structs/Struct';
|
|
7
|
+
import { Origin } from '../structs/Struct';
|
|
8
8
|
export declare class FT implements Asset {
|
|
9
9
|
private _tvmAddress;
|
|
10
10
|
readonly type: AssetType;
|
|
11
11
|
readonly origin: Origin;
|
|
12
12
|
private _configuration;
|
|
13
13
|
private _jettonMinter;
|
|
14
|
-
private _decimals
|
|
14
|
+
private _decimals;
|
|
15
15
|
private _transferAmount;
|
|
16
16
|
private _evmAddress?;
|
|
17
17
|
get address(): string;
|
|
18
|
-
static getJettonData(
|
|
18
|
+
static getJettonData(configuration: IConfiguration, address: TVMAddress): Promise<JettonMinterData>;
|
|
19
|
+
getJettonData(): Promise<JettonMinterData>;
|
|
19
20
|
static getOrigin(configuration: IConfiguration, address: TVMAddress): Promise<Origin>;
|
|
21
|
+
static getOriginAndData(configuration: IConfiguration, address: TVMAddress): Promise<FTOriginAndData>;
|
|
20
22
|
static getTVMAddress(configuration: IConfiguration, address: EVMAddress): Promise<string>;
|
|
23
|
+
static getEVMAddress(configuration: IConfiguration, address: TVMAddress): Promise<string>;
|
|
21
24
|
private constructor();
|
|
25
|
+
private static getTACDecimals;
|
|
22
26
|
static fromAddress(configuration: IConfiguration, address: TVMAddress | EVMAddress): Promise<FT>;
|
|
23
27
|
get rawAmount(): bigint;
|
|
24
28
|
get clone(): FT;
|
|
25
|
-
withAmount(amount:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}): Promise<FT>;
|
|
30
|
-
addAmount(amount: {
|
|
31
|
-
rawAmount: bigint;
|
|
32
|
-
} | {
|
|
33
|
-
amount: number;
|
|
34
|
-
}): Promise<FT>;
|
|
29
|
+
withAmount(amount: number): FT;
|
|
30
|
+
withRawAmount(rawAmount: bigint): FT;
|
|
31
|
+
addAmount(amount: number): FT;
|
|
32
|
+
addRawAmount(rawAmount: bigint): FT;
|
|
35
33
|
getDecimals(): Promise<number>;
|
|
36
34
|
getEVMAddress(): Promise<string>;
|
|
37
35
|
getTVMAddress(): Promise<string>;
|
|
@@ -48,7 +46,7 @@ export declare class FT implements Asset {
|
|
|
48
46
|
getUserBalance(userAddress: string): Promise<bigint>;
|
|
49
47
|
getUserBalanceExtended(userAddress: string): Promise<UserWalletBalanceExtended>;
|
|
50
48
|
checkBalance(userAddress: string): Promise<void>;
|
|
51
|
-
|
|
49
|
+
checkCanBeTransferredBy(userAddress: string): Promise<void>;
|
|
52
50
|
getBalanceOf(userAddress: string): Promise<bigint>;
|
|
53
51
|
private getTransferPayload;
|
|
54
52
|
private getBurnPayload;
|
|
@@ -10,29 +10,36 @@ const Validator_1 = require("../sdk/Validator");
|
|
|
10
10
|
const InternalStruct_1 = require("../structs/InternalStruct");
|
|
11
11
|
const Struct_1 = require("../structs/Struct");
|
|
12
12
|
const Struct_2 = require("../structs/Struct");
|
|
13
|
-
const
|
|
14
|
-
const JettonWallet_1 = require("../wrappers/JettonWallet");
|
|
13
|
+
const ContentUtils_1 = require("../wrappers/ContentUtils");
|
|
15
14
|
class FT {
|
|
16
15
|
get address() {
|
|
17
16
|
return this._tvmAddress.toString({ bounceable: true });
|
|
18
17
|
}
|
|
19
|
-
static async getJettonData(
|
|
18
|
+
static async getJettonData(configuration, address) {
|
|
20
19
|
Validator_1.Validator.validateTVMAddress(address);
|
|
21
|
-
const jetton = contractOpener.open(
|
|
22
|
-
return
|
|
20
|
+
const jetton = configuration.TONParams.contractOpener.open(configuration.artifacts.ton.wrappers.JettonMinter.createFromAddress(ton_1.Address.parse(address)));
|
|
21
|
+
return jetton.getJettonData();
|
|
22
|
+
}
|
|
23
|
+
async getJettonData() {
|
|
24
|
+
return FT.getJettonData(this._configuration, this._tvmAddress.toString());
|
|
23
25
|
}
|
|
24
26
|
static async getOrigin(configuration, address) {
|
|
27
|
+
const result = await this.getOriginAndData(configuration, address);
|
|
28
|
+
return result.origin;
|
|
29
|
+
}
|
|
30
|
+
static async getOriginAndData(configuration, address) {
|
|
25
31
|
const { jettonMinterCode, crossChainLayerAddress, jettonWalletCode } = configuration.TONParams;
|
|
26
32
|
const { code: thisCodeBOC } = await configuration.TONParams.contractOpener.getContractState(ton_1.Address.parse(address));
|
|
27
33
|
if (!thisCodeBOC) {
|
|
28
34
|
throw errors_1.emptyContractError;
|
|
29
35
|
}
|
|
30
36
|
const thisCode = ton_1.Cell.fromBoc(thisCodeBOC)[0];
|
|
37
|
+
const jettonMinter = configuration.TONParams.contractOpener.open(configuration.artifacts.ton.wrappers.JettonMinter.createFromAddress(ton_1.Address.parse(address)));
|
|
31
38
|
if (!jettonMinterCode.equals(thisCode)) {
|
|
32
|
-
|
|
39
|
+
const jettonData = await jettonMinter.getJettonData();
|
|
40
|
+
return { origin: Struct_2.Origin.TON, jettonMinter, jettonData };
|
|
33
41
|
}
|
|
34
|
-
const
|
|
35
|
-
const evmAddress = await jettonMinter.getEVMAddress();
|
|
42
|
+
const evmAddress = await jettonMinter.getEVMTokenAddress();
|
|
36
43
|
const expectedMinterAddress = await (0, Utils_1.calculateContractAddress)(jettonMinterCode, (0, ton_1.beginCell)()
|
|
37
44
|
.storeCoins(0)
|
|
38
45
|
.storeAddress(ton_1.Address.parse(crossChainLayerAddress))
|
|
@@ -42,47 +49,93 @@ class FT {
|
|
|
42
49
|
.storeStringTail(evmAddress)
|
|
43
50
|
.endCell());
|
|
44
51
|
if (!expectedMinterAddress.equals(ton_1.Address.parse(address))) {
|
|
45
|
-
|
|
52
|
+
const jettonData = await jettonMinter.getJettonData();
|
|
53
|
+
return { origin: Struct_2.Origin.TON, jettonMinter, jettonData };
|
|
46
54
|
}
|
|
47
|
-
return Struct_2.Origin.TAC;
|
|
55
|
+
return { origin: Struct_2.Origin.TAC, jettonMinter, evmAddress };
|
|
48
56
|
}
|
|
49
57
|
static async getTVMAddress(configuration, address) {
|
|
50
58
|
Validator_1.Validator.validateEVMAddress(address);
|
|
51
|
-
// If token is TON native
|
|
52
59
|
const fromTVM = await configuration.TACParams.tokenUtils['exists(address)'](address);
|
|
53
60
|
if (fromTVM) {
|
|
54
|
-
const
|
|
61
|
+
const cclErc20Abi = configuration.artifacts.tac.compilationArtifacts.ICrossChainLayerERC20.abi;
|
|
62
|
+
const erc20Token = new ethers_1.ethers.Contract(address, cclErc20Abi, configuration.TACParams.provider);
|
|
55
63
|
const info = await erc20Token.getInfo();
|
|
56
64
|
return info.tvmAddress;
|
|
57
65
|
}
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
const jettonMaster = configuration.artifacts.ton.wrappers.JettonMinter.createFromConfig({
|
|
67
|
+
totalSupply: 0n,
|
|
68
|
+
adminAddress: ton_1.Address.parse(configuration.TONParams.crossChainLayerAddress),
|
|
69
|
+
jettonWalletCode: configuration.TONParams.jettonWalletCode,
|
|
60
70
|
evmTokenAddress: address,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
walletCode: configuration.TONParams.jettonWalletCode,
|
|
64
|
-
});
|
|
71
|
+
content: (0, ton_1.beginCell)().endCell(),
|
|
72
|
+
}, configuration.TONParams.jettonMinterCode);
|
|
65
73
|
return jettonMaster.address.toString();
|
|
66
74
|
}
|
|
67
|
-
|
|
75
|
+
static async getEVMAddress(configuration, address) {
|
|
76
|
+
const tokenAddressString = ton_1.Address.parse(address).toString({ bounceable: true });
|
|
77
|
+
const origin = await FT.getOrigin(configuration, address);
|
|
78
|
+
if (origin === Struct_2.Origin.TON) {
|
|
79
|
+
return configuration.TACParams.tokenUtils.computeAddress(tokenAddressString);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
const givenMinter = configuration.TONParams.contractOpener.open(configuration.artifacts.ton.wrappers.JettonMinter.createFromAddress(ton_1.Address.parse(tokenAddressString)));
|
|
83
|
+
return givenMinter.getEVMTokenAddress();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
constructor(address, origin, configuration, decimals) {
|
|
68
87
|
this.type = Struct_1.AssetType.FT;
|
|
69
88
|
this._tvmAddress = ton_1.Address.parse(address);
|
|
70
89
|
this._configuration = configuration;
|
|
71
|
-
this._jettonMinter = this._configuration.TONParams.contractOpener.open(
|
|
90
|
+
this._jettonMinter = this._configuration.TONParams.contractOpener.open(configuration.artifacts.ton.wrappers.JettonMinter.createFromAddress(this._tvmAddress));
|
|
72
91
|
this.origin = origin;
|
|
73
92
|
this._transferAmount = 0n;
|
|
93
|
+
this._decimals = decimals;
|
|
94
|
+
}
|
|
95
|
+
static async getTACDecimals(configuration, evmAddress) {
|
|
96
|
+
const nativeTACAddress = await configuration.nativeTACAddress();
|
|
97
|
+
if (evmAddress === nativeTACAddress) {
|
|
98
|
+
return Consts_1.TAC_DECIMALS; // Native TAC always has 18 decimals
|
|
99
|
+
}
|
|
100
|
+
// For ERC20 contracts, get decimals from contract
|
|
101
|
+
const erc20TokenAbi = configuration.artifacts.tac.compilationArtifacts.IERC20WithDecimals.abi;
|
|
102
|
+
const erc20Token = new ethers_1.ethers.Contract(evmAddress, erc20TokenAbi, configuration.TACParams.provider);
|
|
103
|
+
return Number(await erc20Token.decimals());
|
|
74
104
|
}
|
|
75
105
|
static async fromAddress(configuration, address) {
|
|
76
106
|
const tvmAddress = (0, ethers_1.isAddress)(address) ? await this.getTVMAddress(configuration, address) : address;
|
|
77
|
-
const origin = await
|
|
107
|
+
const { origin, jettonMinter, evmAddress: cachedEvmAddress, jettonData, } = await this.getOriginAndData(configuration, tvmAddress).catch((e) => {
|
|
78
108
|
if (e instanceof errors_1.ContractError) {
|
|
79
|
-
|
|
109
|
+
const jettonMinter = configuration.TONParams.contractOpener.open(configuration.artifacts.ton.wrappers.JettonMinter.createFromAddress(ton_1.Address.parse(tvmAddress)));
|
|
110
|
+
return { origin: Struct_2.Origin.TAC, jettonMinter, evmAddress: undefined, jettonData: undefined };
|
|
80
111
|
}
|
|
81
112
|
throw e;
|
|
82
113
|
});
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
114
|
+
let decimals;
|
|
115
|
+
let finalEvmAddress;
|
|
116
|
+
if (origin === Struct_2.Origin.TON) {
|
|
117
|
+
if (!jettonData) {
|
|
118
|
+
throw errors_1.missingJettonDataError;
|
|
119
|
+
}
|
|
120
|
+
const metadata = await (0, ContentUtils_1.readJettonMetadata)(jettonData.content);
|
|
121
|
+
const decimalsRaw = metadata.metadata.decimals ?? Consts_1.TON_DECIMALS;
|
|
122
|
+
if (decimalsRaw === undefined) {
|
|
123
|
+
throw errors_1.missingDecimals;
|
|
124
|
+
}
|
|
125
|
+
decimals = Number(decimalsRaw);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
if ((0, ethers_1.isAddress)(address)) {
|
|
129
|
+
finalEvmAddress = address;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
finalEvmAddress = cachedEvmAddress || (await jettonMinter.getEVMTokenAddress());
|
|
133
|
+
}
|
|
134
|
+
decimals = await this.getTACDecimals(configuration, finalEvmAddress);
|
|
135
|
+
}
|
|
136
|
+
const token = new FT(tvmAddress, origin, configuration, decimals);
|
|
137
|
+
if (finalEvmAddress || (0, ethers_1.isAddress)(address)) {
|
|
138
|
+
token._evmAddress = finalEvmAddress || address;
|
|
86
139
|
}
|
|
87
140
|
return token;
|
|
88
141
|
}
|
|
@@ -90,44 +143,38 @@ class FT {
|
|
|
90
143
|
return this._transferAmount;
|
|
91
144
|
}
|
|
92
145
|
get clone() {
|
|
93
|
-
const ft = new FT(this._tvmAddress.toString(), this.origin, this._configuration);
|
|
146
|
+
const ft = new FT(this._tvmAddress.toString(), this.origin, this._configuration, this._decimals);
|
|
94
147
|
ft._transferAmount = this._transferAmount;
|
|
95
148
|
ft._evmAddress = this._evmAddress;
|
|
96
|
-
ft._decimals = this._decimals;
|
|
97
149
|
return ft;
|
|
98
150
|
}
|
|
99
|
-
|
|
151
|
+
withAmount(amount) {
|
|
100
152
|
if (this._transferAmount > 0n) {
|
|
101
|
-
// clone token if withAmount set before to avoid changing the original token
|
|
102
153
|
const newToken = this.clone;
|
|
103
|
-
newToken._transferAmount =
|
|
104
|
-
'rawAmount' in amount ? amount.rawAmount : (0, Utils_1.calculateRawAmount)(amount.amount, await this.getDecimals());
|
|
154
|
+
newToken._transferAmount = (0, Utils_1.calculateRawAmount)(amount, this._decimals);
|
|
105
155
|
return newToken;
|
|
106
156
|
}
|
|
107
|
-
|
|
108
|
-
this._transferAmount = amount.rawAmount;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
const decimals = await this.getDecimals();
|
|
112
|
-
this._transferAmount = (0, Utils_1.calculateRawAmount)(amount.amount, decimals);
|
|
113
|
-
}
|
|
157
|
+
this._transferAmount = (0, Utils_1.calculateRawAmount)(amount, this._decimals);
|
|
114
158
|
return this;
|
|
115
159
|
}
|
|
116
|
-
|
|
117
|
-
if (
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const decimals = await this.getDecimals();
|
|
122
|
-
this._transferAmount = this._transferAmount + (0, Utils_1.calculateRawAmount)(amount.amount, decimals);
|
|
160
|
+
withRawAmount(rawAmount) {
|
|
161
|
+
if (this._transferAmount > 0n) {
|
|
162
|
+
const newToken = this.clone;
|
|
163
|
+
newToken._transferAmount = rawAmount;
|
|
164
|
+
return newToken;
|
|
123
165
|
}
|
|
166
|
+
this._transferAmount = rawAmount;
|
|
167
|
+
return this;
|
|
168
|
+
}
|
|
169
|
+
addAmount(amount) {
|
|
170
|
+
this._transferAmount = this._transferAmount + (0, Utils_1.calculateRawAmount)(amount, this._decimals);
|
|
171
|
+
return this;
|
|
172
|
+
}
|
|
173
|
+
addRawAmount(rawAmount) {
|
|
174
|
+
this._transferAmount = this._transferAmount + rawAmount;
|
|
124
175
|
return this;
|
|
125
176
|
}
|
|
126
177
|
async getDecimals() {
|
|
127
|
-
if (!this._decimals) {
|
|
128
|
-
const decimalsRaw = (await this._jettonMinter.getJettonData()).content.metadata.decimals;
|
|
129
|
-
this._decimals = decimalsRaw ? Number(decimalsRaw) : 9;
|
|
130
|
-
}
|
|
131
178
|
return this._decimals;
|
|
132
179
|
}
|
|
133
180
|
async getEVMAddress() {
|
|
@@ -139,8 +186,8 @@ class FT {
|
|
|
139
186
|
this._evmAddress = await this._configuration.TACParams.tokenUtils.computeAddress(tokenAddressString);
|
|
140
187
|
}
|
|
141
188
|
else if (this.origin === Struct_2.Origin.TAC) {
|
|
142
|
-
const givenMinter = this._configuration.TONParams.contractOpener.open(
|
|
143
|
-
this._evmAddress = await givenMinter.
|
|
189
|
+
const givenMinter = this._configuration.TONParams.contractOpener.open(this._configuration.artifacts.ton.wrappers.JettonMinter.createFromAddress(ton_1.Address.parse(tokenAddressString)));
|
|
190
|
+
this._evmAddress = await givenMinter.getEVMTokenAddress();
|
|
144
191
|
}
|
|
145
192
|
else {
|
|
146
193
|
throw (0, errors_1.unknownTokenTypeError)(tokenAddressString, 'Token origin is neither TON nor TAC');
|
|
@@ -169,10 +216,10 @@ class FT {
|
|
|
169
216
|
}
|
|
170
217
|
async getWallet(userAddress) {
|
|
171
218
|
const walletAddress = await this.getUserWalletAddress(userAddress);
|
|
172
|
-
return this._configuration.TONParams.contractOpener.open(
|
|
219
|
+
return this._configuration.TONParams.contractOpener.open(this._configuration.artifacts.ton.wrappers.JettonWallet.createFromAddress(ton_1.Address.parse(walletAddress)));
|
|
173
220
|
}
|
|
174
221
|
async getUserWalletAddress(userAddress) {
|
|
175
|
-
return this._jettonMinter.getWalletAddress(userAddress);
|
|
222
|
+
return (await this._jettonMinter.getWalletAddress(ton_1.Address.parse(userAddress))).toString({ bounceable: true });
|
|
176
223
|
}
|
|
177
224
|
async getUserBalance(userAddress) {
|
|
178
225
|
const wallet = await this.getWallet(userAddress);
|
|
@@ -199,7 +246,7 @@ class FT {
|
|
|
199
246
|
throw (0, errors_1.insufficientBalanceError)(this._tvmAddress.toString());
|
|
200
247
|
}
|
|
201
248
|
}
|
|
202
|
-
async
|
|
249
|
+
async checkCanBeTransferredBy(userAddress) {
|
|
203
250
|
await this.checkBalance(userAddress);
|
|
204
251
|
}
|
|
205
252
|
async getBalanceOf(userAddress) {
|
|
@@ -207,11 +254,11 @@ class FT {
|
|
|
207
254
|
}
|
|
208
255
|
getTransferPayload(rawAmount, notificationReceiverAddress, responseAddress, evmData, crossChainTonAmount, forwardFeeAmount, feeData) {
|
|
209
256
|
const queryId = (0, Utils_1.generateRandomNumberByTimestamp)().randomNumber;
|
|
210
|
-
return
|
|
257
|
+
return this._configuration.artifacts.ton.wrappers.JettonWallet.transferMessage(rawAmount, notificationReceiverAddress, responseAddress, Consts_1.JETTON_TRANSFER_FORWARD_TON_AMOUNT + forwardFeeAmount + crossChainTonAmount, crossChainTonAmount, feeData, evmData, queryId);
|
|
211
258
|
}
|
|
212
259
|
getBurnPayload(rawAmount, notificationReceiverAddress, evmData, crossChainTonAmount, feeData) {
|
|
213
260
|
const queryId = (0, Utils_1.generateRandomNumberByTimestamp)().randomNumber;
|
|
214
|
-
return
|
|
261
|
+
return this._configuration.artifacts.ton.wrappers.JettonWallet.burnMessage(rawAmount, notificationReceiverAddress, crossChainTonAmount, feeData, evmData, queryId);
|
|
215
262
|
}
|
|
216
263
|
}
|
|
217
264
|
exports.FT = FT;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { Asset,
|
|
1
|
+
import { Cell } from '@ton/ton';
|
|
2
|
+
import { NFTCollectionData, NFTItemData } from '../../artifacts/tonTypes';
|
|
3
|
+
import { Asset, IConfiguration } from '../interfaces';
|
|
4
|
+
import { AssetType, EVMAddress, FeeParams, Origin, TVMAddress } from '../structs/Struct';
|
|
4
5
|
export declare class NFT implements Asset {
|
|
5
|
-
private _addresses;
|
|
6
|
+
private readonly _addresses;
|
|
6
7
|
readonly origin: Origin;
|
|
7
8
|
readonly type: AssetType;
|
|
8
9
|
private _nftCollection;
|
|
@@ -11,7 +12,6 @@ export declare class NFT implements Asset {
|
|
|
11
12
|
* @description Create NFT from item address. Item MUST BE deployed on TON.
|
|
12
13
|
* @param configuration - Configuration
|
|
13
14
|
* @param item - Item address (TVM address)
|
|
14
|
-
* @param origin - Origin
|
|
15
15
|
* @returns NFT
|
|
16
16
|
*/
|
|
17
17
|
static fromItem(configuration: IConfiguration, item: TVMAddress): Promise<NFT>;
|
|
@@ -19,21 +19,18 @@ export declare class NFT implements Asset {
|
|
|
19
19
|
* @description Create NFT from collection address. TON-native assets MUST BE deployed on TON.
|
|
20
20
|
* @param configuration - Configuration
|
|
21
21
|
* @param item - Item address (TVM address)
|
|
22
|
-
* @param origin - Origin
|
|
23
22
|
* @returns NFT
|
|
24
23
|
*/
|
|
25
24
|
static fromCollection(configuration: IConfiguration, item: {
|
|
26
25
|
collection: TVMAddress | EVMAddress;
|
|
27
26
|
index: bigint;
|
|
28
27
|
}): Promise<NFT>;
|
|
29
|
-
static getItemData(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
ownerAddress: Address;
|
|
34
|
-
}>;
|
|
28
|
+
static getItemData(configuration: IConfiguration, itemAddress: TVMAddress): Promise<NFTItemData>;
|
|
29
|
+
getItemData(): Promise<NFTItemData>;
|
|
30
|
+
static getCollectionData(configuration: IConfiguration, collectionAddress: TVMAddress): Promise<NFTCollectionData>;
|
|
31
|
+
getCollectionData(): Promise<NFTCollectionData>;
|
|
35
32
|
static getOrigin(configuration: IConfiguration, itemOrCollection: TVMAddress): Promise<Origin>;
|
|
36
|
-
static getItemAddress(
|
|
33
|
+
static getItemAddress(configuration: IConfiguration, collectionAddress: TVMAddress, index: bigint): Promise<string>;
|
|
37
34
|
static getTVMAddress(configuration: IConfiguration, collectionAddress: EVMAddress, tokenId?: bigint): Promise<string>;
|
|
38
35
|
constructor(nftAddress: {
|
|
39
36
|
item: TVMAddress;
|
|
@@ -50,8 +47,10 @@ export declare class NFT implements Asset {
|
|
|
50
47
|
get address(): string;
|
|
51
48
|
get rawAmount(): bigint;
|
|
52
49
|
get clone(): NFT;
|
|
53
|
-
withAmount():
|
|
54
|
-
|
|
50
|
+
withAmount(_amount?: number): NFT;
|
|
51
|
+
withRawAmount(_rawAmount?: bigint): NFT;
|
|
52
|
+
addAmount(_amount?: number): NFT;
|
|
53
|
+
addRawAmount(_rawAmount?: bigint): NFT;
|
|
55
54
|
getEVMAddress(): Promise<string>;
|
|
56
55
|
getTVMAddress(): Promise<string>;
|
|
57
56
|
generatePayload(params: {
|
|
@@ -62,7 +61,7 @@ export declare class NFT implements Asset {
|
|
|
62
61
|
feeParams?: FeeParams;
|
|
63
62
|
}): Promise<Cell>;
|
|
64
63
|
isOwnedBy(userAddress: string): Promise<boolean>;
|
|
65
|
-
|
|
64
|
+
checkCanBeTransferredBy(userAddress: string): Promise<void>;
|
|
66
65
|
getBalanceOf(userAddress: string): Promise<bigint>;
|
|
67
66
|
private getBurnPayload;
|
|
68
67
|
private getTransferPayload;
|