@sign-global/tokentable 0.0.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/.github/workflows/push.yml +33 -0
- package/.prettierignore +2 -0
- package/.prettierrc +7 -0
- package/README.md +186 -0
- package/dist/cjs/airdrop/BaseAirdropClient.d.ts +28 -0
- package/dist/cjs/airdrop/BaseAirdropClient.js +50 -0
- package/dist/cjs/airdrop/BaseAirdropClient.js.map +1 -0
- package/dist/cjs/airdrop/EvmAirdropClient.d.ts +19 -0
- package/dist/cjs/airdrop/EvmAirdropClient.js +65 -0
- package/dist/cjs/airdrop/EvmAirdropClient.js.map +1 -0
- package/dist/cjs/airdrop/TonAirdropClient.d.ts +24 -0
- package/dist/cjs/airdrop/TonAirdropClient.js +78 -0
- package/dist/cjs/airdrop/TonAirdropClient.js.map +1 -0
- package/dist/cjs/airdrop/common/index.d.ts +1034 -0
- package/dist/cjs/airdrop/common/index.js +37 -0
- package/dist/cjs/airdrop/common/index.js.map +1 -0
- package/dist/cjs/airdrop/common/projectDataForTon.d.ts +79 -0
- package/dist/cjs/airdrop/common/projectDataForTon.js +83 -0
- package/dist/cjs/airdrop/common/projectDataForTon.js.map +1 -0
- package/dist/cjs/airdrop/constants/chain-config.d.ts +1043 -0
- package/dist/cjs/airdrop/constants/chain-config.js +90 -0
- package/dist/cjs/airdrop/constants/chain-config.js.map +1 -0
- package/dist/cjs/airdrop/constants/index.d.ts +2 -0
- package/dist/cjs/airdrop/constants/index.js +20 -0
- package/dist/cjs/airdrop/constants/index.js.map +1 -0
- package/dist/cjs/airdrop/constants/network.d.ts +90 -0
- package/dist/cjs/airdrop/constants/network.js +79 -0
- package/dist/cjs/airdrop/constants/network.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/AirdropService.d.ts +36 -0
- package/dist/cjs/airdrop/core/evm/AirdropService.js +146 -0
- package/dist/cjs/airdrop/core/evm/AirdropService.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV2Client.d.ts +8 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV2Client.js +40 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV2Client.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV3Client.d.ts +16 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV3Client.js +49 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV3Client.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV3FeeClient.d.ts +6 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV3FeeClient.js +21 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV3FeeClient.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV4Client.d.ts +13 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV4Client.js +28 -0
- package/dist/cjs/airdrop/core/evm/contracts/AirdropV4Client.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/ContractBaseClient.d.ts +28 -0
- package/dist/cjs/airdrop/core/evm/contracts/ContractBaseClient.js +60 -0
- package/dist/cjs/airdrop/core/evm/contracts/ContractBaseClient.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/DeployClient.d.ts +7 -0
- package/dist/cjs/airdrop/core/evm/contracts/DeployClient.js +38 -0
- package/dist/cjs/airdrop/core/evm/contracts/DeployClient.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/FeeCollectorClient.d.ts +6 -0
- package/dist/cjs/airdrop/core/evm/contracts/FeeCollectorClient.js +26 -0
- package/dist/cjs/airdrop/core/evm/contracts/FeeCollectorClient.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/KycClient.d.ts +6 -0
- package/dist/cjs/airdrop/core/evm/contracts/KycClient.js +26 -0
- package/dist/cjs/airdrop/core/evm/contracts/KycClient.js.map +1 -0
- package/dist/cjs/airdrop/core/evm/contracts/abis/AirdropV2.json +676 -0
- package/dist/cjs/airdrop/core/evm/contracts/abis/AirdropV3.json +740 -0
- package/dist/cjs/airdrop/core/evm/contracts/abis/AirdropV3_Fee.json +678 -0
- package/dist/cjs/airdrop/core/evm/contracts/abis/CustomFeeNativeAirdropV4.json +701 -0
- package/dist/cjs/airdrop/core/evm/contracts/abis/Deployer.json +271 -0
- package/dist/cjs/airdrop/core/evm/contracts/abis/FeeCollector.json +322 -0
- package/dist/cjs/airdrop/core/evm/contracts/abis/KycHook.json +312 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV1.d.ts +24 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV1.js +104 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV1.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV2.d.ts +28 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV2.js +102 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV2.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV3.d.ts +28 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV3.js +109 -0
- package/dist/cjs/airdrop/core/ton/AirdropClientV3.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/AirdropService.d.ts +40 -0
- package/dist/cjs/airdrop/core/ton/AirdropService.js +102 -0
- package/dist/cjs/airdrop/core/ton/AirdropService.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/TonContractBaseClient.d.ts +33 -0
- package/dist/cjs/airdrop/core/ton/TonContractBaseClient.js +215 -0
- package/dist/cjs/airdrop/core/ton/TonContractBaseClient.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/build/Leaf.compiled.json +1 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/constants.d.ts +40 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/constants.js +47 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/constants.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/date.utils.d.ts +3 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/date.utils.js +15 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/date.utils.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/index.d.ts +3 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/index.js +20 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/index.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/ton.utils.d.ts +17 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/ton.utils.js +87 -0
- package/dist/cjs/airdrop/core/ton/v1/utils/ton.utils.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/JettonMinter.d.ts +24 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/JettonMinter.js +67 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/JettonMinter.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/JettonWallet.d.ts +23 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/JettonWallet.js +63 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/JettonWallet.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/Leaf.d.ts +26 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/Leaf.js +77 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/Leaf.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/MerkleTokenDistributor.d.ts +62 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/MerkleTokenDistributor.js +228 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/MerkleTokenDistributor.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/index.d.ts +2 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/index.js +19 -0
- package/dist/cjs/airdrop/core/ton/v1/wrappers/index.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v2/build/Leaf.compiled.json +1 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/constants.d.ts +41 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/constants.js +48 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/constants.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/date.utils.d.ts +3 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/date.utils.js +15 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/date.utils.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/index.d.ts +3 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/index.js +20 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/index.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/ton.utils.d.ts +20 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/ton.utils.js +104 -0
- package/dist/cjs/airdrop/core/ton/v2/utils/ton.utils.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/Leaf.d.ts +24 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/Leaf.js +60 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/Leaf.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/MerkleTokenDistributor.d.ts +65 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/MerkleTokenDistributor.js +245 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/MerkleTokenDistributor.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/index.d.ts +2 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/index.js +19 -0
- package/dist/cjs/airdrop/core/ton/v2/wrappers/index.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v3/build/Leaf.compiled.json +1 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/constants.d.ts +40 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/constants.js +47 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/constants.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/date.utils.d.ts +3 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/date.utils.js +15 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/date.utils.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/index.d.ts +3 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/index.js +20 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/index.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/ton.utils.d.ts +17 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/ton.utils.js +87 -0
- package/dist/cjs/airdrop/core/ton/v3/utils/ton.utils.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/Leaf.d.ts +24 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/Leaf.js +60 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/Leaf.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/MerkleTokenDistributor.d.ts +63 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/MerkleTokenDistributor.js +225 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/MerkleTokenDistributor.js.map +1 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/index.d.ts +2 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/index.js +19 -0
- package/dist/cjs/airdrop/core/ton/v3/wrappers/index.js.map +1 -0
- package/dist/cjs/airdrop/index.d.ts +3 -0
- package/dist/cjs/airdrop/index.js +23 -0
- package/dist/cjs/airdrop/index.js.map +1 -0
- package/dist/cjs/airdrop/services/index.d.ts +23 -0
- package/dist/cjs/airdrop/services/index.js +44 -0
- package/dist/cjs/airdrop/services/index.js.map +1 -0
- package/dist/cjs/airdrop/services/wallet-service/ton/WalletService.d.ts +46 -0
- package/dist/cjs/airdrop/services/wallet-service/ton/WalletService.js +173 -0
- package/dist/cjs/airdrop/services/wallet-service/ton/WalletService.js.map +1 -0
- package/dist/cjs/airdrop/services/wallet-service/ton/index.d.ts +1 -0
- package/dist/cjs/airdrop/services/wallet-service/ton/index.js +6 -0
- package/dist/cjs/airdrop/services/wallet-service/ton/index.js.map +1 -0
- package/dist/cjs/airdrop/types/index.d.ts +105 -0
- package/dist/cjs/airdrop/types/index.js +21 -0
- package/dist/cjs/airdrop/types/index.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/utils/api-client.d.ts +18 -0
- package/dist/cjs/utils/api-client.js +47 -0
- package/dist/cjs/utils/api-client.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +3 -0
- package/dist/cjs/utils/index.js +20 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/utils.d.ts +7 -0
- package/dist/cjs/utils/utils.js +39 -0
- package/dist/cjs/utils/utils.js.map +1 -0
- package/dist/cjs/utils/web3.d.ts +1 -0
- package/dist/cjs/utils/web3.js +15 -0
- package/dist/cjs/utils/web3.js.map +1 -0
- package/dist/esm/airdrop/BaseAirdropClient.d.ts +28 -0
- package/dist/esm/airdrop/BaseAirdropClient.js +46 -0
- package/dist/esm/airdrop/BaseAirdropClient.js.map +1 -0
- package/dist/esm/airdrop/EvmAirdropClient.d.ts +19 -0
- package/dist/esm/airdrop/EvmAirdropClient.js +61 -0
- package/dist/esm/airdrop/EvmAirdropClient.js.map +1 -0
- package/dist/esm/airdrop/TonAirdropClient.d.ts +24 -0
- package/dist/esm/airdrop/TonAirdropClient.js +74 -0
- package/dist/esm/airdrop/TonAirdropClient.js.map +1 -0
- package/dist/esm/airdrop/common/index.d.ts +1034 -0
- package/dist/esm/airdrop/common/index.js +30 -0
- package/dist/esm/airdrop/common/index.js.map +1 -0
- package/dist/esm/airdrop/common/projectDataForTon.d.ts +79 -0
- package/dist/esm/airdrop/common/projectDataForTon.js +80 -0
- package/dist/esm/airdrop/common/projectDataForTon.js.map +1 -0
- package/dist/esm/airdrop/constants/chain-config.d.ts +1043 -0
- package/dist/esm/airdrop/constants/chain-config.js +87 -0
- package/dist/esm/airdrop/constants/chain-config.js.map +1 -0
- package/dist/esm/airdrop/constants/index.d.ts +2 -0
- package/dist/esm/airdrop/constants/index.js +3 -0
- package/dist/esm/airdrop/constants/index.js.map +1 -0
- package/dist/esm/airdrop/constants/network.d.ts +90 -0
- package/dist/esm/airdrop/constants/network.js +76 -0
- package/dist/esm/airdrop/constants/network.js.map +1 -0
- package/dist/esm/airdrop/core/evm/AirdropService.d.ts +36 -0
- package/dist/esm/airdrop/core/evm/AirdropService.js +142 -0
- package/dist/esm/airdrop/core/evm/AirdropService.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV2Client.d.ts +8 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV2Client.js +33 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV2Client.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV3Client.d.ts +16 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV3Client.js +42 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV3Client.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV3FeeClient.d.ts +6 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV3FeeClient.js +14 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV3FeeClient.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV4Client.d.ts +13 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV4Client.js +21 -0
- package/dist/esm/airdrop/core/evm/contracts/AirdropV4Client.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/ContractBaseClient.d.ts +28 -0
- package/dist/esm/airdrop/core/evm/contracts/ContractBaseClient.js +56 -0
- package/dist/esm/airdrop/core/evm/contracts/ContractBaseClient.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/DeployClient.d.ts +7 -0
- package/dist/esm/airdrop/core/evm/contracts/DeployClient.js +31 -0
- package/dist/esm/airdrop/core/evm/contracts/DeployClient.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/FeeCollectorClient.d.ts +6 -0
- package/dist/esm/airdrop/core/evm/contracts/FeeCollectorClient.js +19 -0
- package/dist/esm/airdrop/core/evm/contracts/FeeCollectorClient.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/KycClient.d.ts +6 -0
- package/dist/esm/airdrop/core/evm/contracts/KycClient.js +19 -0
- package/dist/esm/airdrop/core/evm/contracts/KycClient.js.map +1 -0
- package/dist/esm/airdrop/core/evm/contracts/abis/AirdropV2.json +676 -0
- package/dist/esm/airdrop/core/evm/contracts/abis/AirdropV3.json +740 -0
- package/dist/esm/airdrop/core/evm/contracts/abis/AirdropV3_Fee.json +678 -0
- package/dist/esm/airdrop/core/evm/contracts/abis/CustomFeeNativeAirdropV4.json +701 -0
- package/dist/esm/airdrop/core/evm/contracts/abis/Deployer.json +271 -0
- package/dist/esm/airdrop/core/evm/contracts/abis/FeeCollector.json +322 -0
- package/dist/esm/airdrop/core/evm/contracts/abis/KycHook.json +312 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV1.d.ts +24 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV1.js +97 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV1.js.map +1 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV2.d.ts +28 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV2.js +95 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV2.js.map +1 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV3.d.ts +28 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV3.js +102 -0
- package/dist/esm/airdrop/core/ton/AirdropClientV3.js.map +1 -0
- package/dist/esm/airdrop/core/ton/AirdropService.d.ts +40 -0
- package/dist/esm/airdrop/core/ton/AirdropService.js +98 -0
- package/dist/esm/airdrop/core/ton/AirdropService.js.map +1 -0
- package/dist/esm/airdrop/core/ton/TonContractBaseClient.d.ts +33 -0
- package/dist/esm/airdrop/core/ton/TonContractBaseClient.js +211 -0
- package/dist/esm/airdrop/core/ton/TonContractBaseClient.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/build/Leaf.compiled.json +1 -0
- package/dist/esm/airdrop/core/ton/v1/utils/constants.d.ts +40 -0
- package/dist/esm/airdrop/core/ton/v1/utils/constants.js +44 -0
- package/dist/esm/airdrop/core/ton/v1/utils/constants.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/utils/date.utils.d.ts +3 -0
- package/dist/esm/airdrop/core/ton/v1/utils/date.utils.js +10 -0
- package/dist/esm/airdrop/core/ton/v1/utils/date.utils.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/utils/index.d.ts +3 -0
- package/dist/esm/airdrop/core/ton/v1/utils/index.js +4 -0
- package/dist/esm/airdrop/core/ton/v1/utils/index.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/utils/ton.utils.d.ts +17 -0
- package/dist/esm/airdrop/core/ton/v1/utils/ton.utils.js +69 -0
- package/dist/esm/airdrop/core/ton/v1/utils/ton.utils.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/JettonMinter.d.ts +24 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/JettonMinter.js +62 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/JettonMinter.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/JettonWallet.d.ts +23 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/JettonWallet.js +58 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/JettonWallet.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/Leaf.d.ts +26 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/Leaf.js +72 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/Leaf.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/MerkleTokenDistributor.d.ts +62 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/MerkleTokenDistributor.js +222 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/MerkleTokenDistributor.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/index.d.ts +2 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/index.js +3 -0
- package/dist/esm/airdrop/core/ton/v1/wrappers/index.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v2/build/Leaf.compiled.json +1 -0
- package/dist/esm/airdrop/core/ton/v2/utils/constants.d.ts +41 -0
- package/dist/esm/airdrop/core/ton/v2/utils/constants.js +45 -0
- package/dist/esm/airdrop/core/ton/v2/utils/constants.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v2/utils/date.utils.d.ts +3 -0
- package/dist/esm/airdrop/core/ton/v2/utils/date.utils.js +10 -0
- package/dist/esm/airdrop/core/ton/v2/utils/date.utils.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v2/utils/index.d.ts +3 -0
- package/dist/esm/airdrop/core/ton/v2/utils/index.js +4 -0
- package/dist/esm/airdrop/core/ton/v2/utils/index.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v2/utils/ton.utils.d.ts +20 -0
- package/dist/esm/airdrop/core/ton/v2/utils/ton.utils.js +83 -0
- package/dist/esm/airdrop/core/ton/v2/utils/ton.utils.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/Leaf.d.ts +24 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/Leaf.js +55 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/Leaf.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/MerkleTokenDistributor.d.ts +65 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/MerkleTokenDistributor.js +239 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/MerkleTokenDistributor.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/index.d.ts +2 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/index.js +3 -0
- package/dist/esm/airdrop/core/ton/v2/wrappers/index.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v3/build/Leaf.compiled.json +1 -0
- package/dist/esm/airdrop/core/ton/v3/utils/constants.d.ts +40 -0
- package/dist/esm/airdrop/core/ton/v3/utils/constants.js +44 -0
- package/dist/esm/airdrop/core/ton/v3/utils/constants.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v3/utils/date.utils.d.ts +3 -0
- package/dist/esm/airdrop/core/ton/v3/utils/date.utils.js +10 -0
- package/dist/esm/airdrop/core/ton/v3/utils/date.utils.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v3/utils/index.d.ts +3 -0
- package/dist/esm/airdrop/core/ton/v3/utils/index.js +4 -0
- package/dist/esm/airdrop/core/ton/v3/utils/index.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v3/utils/ton.utils.d.ts +17 -0
- package/dist/esm/airdrop/core/ton/v3/utils/ton.utils.js +69 -0
- package/dist/esm/airdrop/core/ton/v3/utils/ton.utils.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/Leaf.d.ts +24 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/Leaf.js +55 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/Leaf.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/MerkleTokenDistributor.d.ts +63 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/MerkleTokenDistributor.js +219 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/MerkleTokenDistributor.js.map +1 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/index.d.ts +2 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/index.js +3 -0
- package/dist/esm/airdrop/core/ton/v3/wrappers/index.js.map +1 -0
- package/dist/esm/airdrop/index.d.ts +3 -0
- package/dist/esm/airdrop/index.js +4 -0
- package/dist/esm/airdrop/index.js.map +1 -0
- package/dist/esm/airdrop/services/index.d.ts +23 -0
- package/dist/esm/airdrop/services/index.js +35 -0
- package/dist/esm/airdrop/services/index.js.map +1 -0
- package/dist/esm/airdrop/services/wallet-service/ton/WalletService.d.ts +46 -0
- package/dist/esm/airdrop/services/wallet-service/ton/WalletService.js +169 -0
- package/dist/esm/airdrop/services/wallet-service/ton/WalletService.js.map +1 -0
- package/dist/esm/airdrop/services/wallet-service/ton/index.d.ts +1 -0
- package/dist/esm/airdrop/services/wallet-service/ton/index.js +2 -0
- package/dist/esm/airdrop/services/wallet-service/ton/index.js.map +1 -0
- package/dist/esm/airdrop/types/index.d.ts +105 -0
- package/dist/esm/airdrop/types/index.js +18 -0
- package/dist/esm/airdrop/types/index.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/utils/api-client.d.ts +18 -0
- package/dist/esm/utils/api-client.js +43 -0
- package/dist/esm/utils/api-client.js.map +1 -0
- package/dist/esm/utils/index.d.ts +3 -0
- package/dist/esm/utils/index.js +4 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/utils.d.ts +7 -0
- package/dist/esm/utils/utils.js +29 -0
- package/dist/esm/utils/utils.js.map +1 -0
- package/dist/esm/utils/web3.d.ts +1 -0
- package/dist/esm/utils/web3.js +9 -0
- package/dist/esm/utils/web3.js.map +1 -0
- package/index.ts +34 -0
- package/package.json +34 -0
- package/src/airdrop/BaseAirdropClient.ts +75 -0
- package/src/airdrop/EvmAirdropClient.ts +74 -0
- package/src/airdrop/TonAirdropClient.ts +93 -0
- package/src/airdrop/common/index.ts +49 -0
- package/src/airdrop/common/projectDataForTon.ts +79 -0
- package/src/airdrop/constants/chain-config.ts +102 -0
- package/src/airdrop/constants/index.ts +3 -0
- package/src/airdrop/constants/network.ts +78 -0
- package/src/airdrop/core/evm/AirdropService.ts +182 -0
- package/src/airdrop/core/evm/contracts/AirdropV2Client.ts +37 -0
- package/src/airdrop/core/evm/contracts/AirdropV3Client.ts +49 -0
- package/src/airdrop/core/evm/contracts/AirdropV3FeeClient.ts +16 -0
- package/src/airdrop/core/evm/contracts/AirdropV4Client.ts +36 -0
- package/src/airdrop/core/evm/contracts/ContractBaseClient.ts +85 -0
- package/src/airdrop/core/evm/contracts/DeployClient.ts +35 -0
- package/src/airdrop/core/evm/contracts/FeeCollectorClient.ts +21 -0
- package/src/airdrop/core/evm/contracts/KycClient.ts +21 -0
- package/src/airdrop/core/evm/contracts/abis/Airdrop.json +674 -0
- package/src/airdrop/core/evm/contracts/abis/AirdropV2.json +676 -0
- package/src/airdrop/core/evm/contracts/abis/AirdropV3.json +740 -0
- package/src/airdrop/core/evm/contracts/abis/AirdropV3_Fee.json +678 -0
- package/src/airdrop/core/evm/contracts/abis/CustomFeeNativeAirdropV4.json +701 -0
- package/src/airdrop/core/evm/contracts/abis/Deployer.json +271 -0
- package/src/airdrop/core/evm/contracts/abis/ERC721.json +737 -0
- package/src/airdrop/core/evm/contracts/abis/FeeCollector.json +322 -0
- package/src/airdrop/core/evm/contracts/abis/KycHook.json +312 -0
- package/src/airdrop/core/ton/AirdropClientV1.ts +122 -0
- package/src/airdrop/core/ton/AirdropClientV2.ts +118 -0
- package/src/airdrop/core/ton/AirdropClientV3.ts +127 -0
- package/src/airdrop/core/ton/AirdropService.ts +121 -0
- package/src/airdrop/core/ton/TonContractBaseClient.ts +235 -0
- package/src/airdrop/core/ton/v1/build/Leaf.compiled.json +1 -0
- package/src/airdrop/core/ton/v1/build/MerkleTokenDistributor.compiled.json +1 -0
- package/src/airdrop/core/ton/v1/utils/constants.ts +42 -0
- package/src/airdrop/core/ton/v1/utils/date.utils.ts +11 -0
- package/src/airdrop/core/ton/v1/utils/index.ts +3 -0
- package/src/airdrop/core/ton/v1/utils/ton.utils.ts +84 -0
- package/src/airdrop/core/ton/v1/wrappers/JettonMinter.ts +81 -0
- package/src/airdrop/core/ton/v1/wrappers/JettonWallet.ts +73 -0
- package/src/airdrop/core/ton/v1/wrappers/Leaf.ts +88 -0
- package/src/airdrop/core/ton/v1/wrappers/MerkleTokenDistributor.ts +317 -0
- package/src/airdrop/core/ton/v1/wrappers/index.ts +2 -0
- package/src/airdrop/core/ton/v2/build/Leaf.compiled.json +1 -0
- package/src/airdrop/core/ton/v2/build/MerkleTokenDistributor.compiled.json +1 -0
- package/src/airdrop/core/ton/v2/utils/constants.ts +43 -0
- package/src/airdrop/core/ton/v2/utils/date.utils.ts +11 -0
- package/src/airdrop/core/ton/v2/utils/index.ts +3 -0
- package/src/airdrop/core/ton/v2/utils/ton.utils.ts +102 -0
- package/src/airdrop/core/ton/v2/wrappers/Leaf.ts +69 -0
- package/src/airdrop/core/ton/v2/wrappers/MerkleTokenDistributor.ts +340 -0
- package/src/airdrop/core/ton/v2/wrappers/index.ts +2 -0
- package/src/airdrop/core/ton/v3/build/Leaf.compiled.json +1 -0
- package/src/airdrop/core/ton/v3/build/MerkleTokenDistributor.compiled.json +1 -0
- package/src/airdrop/core/ton/v3/utils/constants.ts +43 -0
- package/src/airdrop/core/ton/v3/utils/date.utils.ts +11 -0
- package/src/airdrop/core/ton/v3/utils/index.ts +3 -0
- package/src/airdrop/core/ton/v3/utils/ton.utils.ts +84 -0
- package/src/airdrop/core/ton/v3/wrappers/Leaf.ts +68 -0
- package/src/airdrop/core/ton/v3/wrappers/MerkleTokenDistributor.ts +316 -0
- package/src/airdrop/core/ton/v3/wrappers/index.ts +2 -0
- package/src/airdrop/index.ts +3 -0
- package/src/airdrop/services/index.ts +63 -0
- package/src/airdrop/services/wallet-service/ton/WalletService.ts +226 -0
- package/src/airdrop/services/wallet-service/ton/index.ts +1 -0
- package/src/airdrop/types/index.ts +128 -0
- package/src/index.ts +1 -0
- package/src/utils/api-client.ts +68 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/utils.ts +30 -0
- package/src/utils/web3.ts +8 -0
- package/tsconfig.json +29 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { TonConnectUI } from '@tonconnect/ui-react';
|
|
2
|
+
import { AirdropService as TonAirdropService } from '../core/ton/AirdropService';
|
|
3
|
+
import { AirdropService as EvmAirdropService } from '../core/evm/AirdropService';
|
|
4
|
+
import { TonClient } from '@ton/ton';
|
|
5
|
+
import { ChainConfig } from '../constants';
|
|
6
|
+
import { WalletClient as ViemWalletClient } from 'viem';
|
|
7
|
+
export type ChainId = keyof typeof ChainConfig;
|
|
8
|
+
export interface EvmContractClientOption {
|
|
9
|
+
chainId: ChainId;
|
|
10
|
+
walletClient?: ViemWalletClient;
|
|
11
|
+
contractAddress: string;
|
|
12
|
+
abi?: any;
|
|
13
|
+
}
|
|
14
|
+
export declare enum ChainType {
|
|
15
|
+
Evm = "evm",
|
|
16
|
+
Ton = "ton"
|
|
17
|
+
}
|
|
18
|
+
export interface IProject {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
chainId: string;
|
|
22
|
+
chainType: ChainType;
|
|
23
|
+
tokenAddress: string;
|
|
24
|
+
tokenType: string;
|
|
25
|
+
startTime: number;
|
|
26
|
+
endTime: number;
|
|
27
|
+
contractAddress: string;
|
|
28
|
+
recipientType: string;
|
|
29
|
+
merkleRoot: string;
|
|
30
|
+
ownerAddress: string;
|
|
31
|
+
blockCountries: Record<string, string>;
|
|
32
|
+
themeConf: Record<string, any>;
|
|
33
|
+
version: string;
|
|
34
|
+
extra?: {
|
|
35
|
+
kyc: boolean;
|
|
36
|
+
tag: string;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export type IAirdropClaim = {
|
|
40
|
+
index: number;
|
|
41
|
+
recipient: string;
|
|
42
|
+
proof: string[];
|
|
43
|
+
amount: string;
|
|
44
|
+
unlockingAt: number;
|
|
45
|
+
group: string;
|
|
46
|
+
data: string;
|
|
47
|
+
leaf: string;
|
|
48
|
+
claimed?: boolean;
|
|
49
|
+
claimId?: string;
|
|
50
|
+
claimable?: boolean;
|
|
51
|
+
proofHash: string;
|
|
52
|
+
ownerAddress: string;
|
|
53
|
+
proofBoc: string;
|
|
54
|
+
expiryTimestamp: number;
|
|
55
|
+
expired?: boolean;
|
|
56
|
+
project: IProject;
|
|
57
|
+
};
|
|
58
|
+
export interface IAirdropData {
|
|
59
|
+
claims: IAirdropClaim[];
|
|
60
|
+
}
|
|
61
|
+
export declare enum TonAirdropVersionEnum {
|
|
62
|
+
V1 = "1.0.0",
|
|
63
|
+
V2 = "2.0.0",
|
|
64
|
+
LiteV1 = "11.0.0"
|
|
65
|
+
}
|
|
66
|
+
export declare enum EvmAirdropVersionEnum {
|
|
67
|
+
V0 = "0.0.2",// 兼容btc减半 airdrop
|
|
68
|
+
V3 = "0.3.0",// zeta 收费
|
|
69
|
+
V4 = "0.4.0"
|
|
70
|
+
}
|
|
71
|
+
export type IWalletClient = TonConnectUI | ViemWalletClient;
|
|
72
|
+
export type IAirdropService = TonAirdropService | EvmAirdropService;
|
|
73
|
+
export type BaseAirdropOptions = {
|
|
74
|
+
endpoint?: string;
|
|
75
|
+
projectId?: string;
|
|
76
|
+
};
|
|
77
|
+
type BaseTonConfig = {
|
|
78
|
+
endpoint?: string;
|
|
79
|
+
tonClient?: TonClient;
|
|
80
|
+
};
|
|
81
|
+
type TonProjectIdConfig = BaseTonConfig & {
|
|
82
|
+
projectId: string;
|
|
83
|
+
slug?: never;
|
|
84
|
+
};
|
|
85
|
+
type TonSlugConfig = BaseTonConfig & {
|
|
86
|
+
slug: string;
|
|
87
|
+
projectId?: never;
|
|
88
|
+
};
|
|
89
|
+
export type TonAirdropOptions = TonProjectIdConfig | TonSlugConfig;
|
|
90
|
+
export interface EvmAirdropOptions extends BaseAirdropOptions {
|
|
91
|
+
projectId: string;
|
|
92
|
+
}
|
|
93
|
+
export interface TonContractWrapperOptions {
|
|
94
|
+
chainId: ChainId;
|
|
95
|
+
contractAddress: string;
|
|
96
|
+
walletClient?: TonConnectUI;
|
|
97
|
+
tonClient?: TonClient;
|
|
98
|
+
}
|
|
99
|
+
export interface EvmContractWrapperOptions {
|
|
100
|
+
chainId: ChainId;
|
|
101
|
+
contractAddress: string;
|
|
102
|
+
walletClient?: ViemWalletClient;
|
|
103
|
+
}
|
|
104
|
+
export type ContractWrapperOptions = TonContractWrapperOptions | EvmContractWrapperOptions;
|
|
105
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export var ChainType;
|
|
2
|
+
(function (ChainType) {
|
|
3
|
+
ChainType["Evm"] = "evm";
|
|
4
|
+
ChainType["Ton"] = "ton";
|
|
5
|
+
})(ChainType || (ChainType = {}));
|
|
6
|
+
export var TonAirdropVersionEnum;
|
|
7
|
+
(function (TonAirdropVersionEnum) {
|
|
8
|
+
TonAirdropVersionEnum["V1"] = "1.0.0";
|
|
9
|
+
TonAirdropVersionEnum["V2"] = "2.0.0";
|
|
10
|
+
TonAirdropVersionEnum["LiteV1"] = "11.0.0";
|
|
11
|
+
})(TonAirdropVersionEnum || (TonAirdropVersionEnum = {}));
|
|
12
|
+
export var EvmAirdropVersionEnum;
|
|
13
|
+
(function (EvmAirdropVersionEnum) {
|
|
14
|
+
EvmAirdropVersionEnum["V0"] = "0.0.2";
|
|
15
|
+
EvmAirdropVersionEnum["V3"] = "0.3.0";
|
|
16
|
+
EvmAirdropVersionEnum["V4"] = "0.4.0"; // zeta kyc、kyc threshold
|
|
17
|
+
})(EvmAirdropVersionEnum || (EvmAirdropVersionEnum = {}));
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/airdrop/types/index.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,wBAAW,CAAA;AACb,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAmDD,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,qCAAY,CAAA;IACZ,qCAAY,CAAA;IACZ,0CAAiB,CAAA;AACnB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,qCAAY,CAAA;IACZ,qCAAY,CAAA;IACZ,qCAAY,CAAA,CAAC,yBAAyB;AACxC,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { EvmAirdropClient, TonAirdropClient } from './airdrop';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type ApiClientOptions = {
|
|
2
|
+
baseURL?: string;
|
|
3
|
+
};
|
|
4
|
+
export type ApiRequestOptions = {
|
|
5
|
+
params?: Record<string, string | number>;
|
|
6
|
+
skipHandleError?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare class ApiClient {
|
|
9
|
+
private options?;
|
|
10
|
+
constructor(options?: ApiClientOptions | undefined);
|
|
11
|
+
extend(options: ApiClientOptions): ApiClient;
|
|
12
|
+
get<TRes>(url: string, options?: ApiRequestOptions): Promise<TRes>;
|
|
13
|
+
post<TRes, TReq = unknown>(url: string, data?: TReq, options?: ApiRequestOptions): Promise<TRes>;
|
|
14
|
+
put<TRes, TReq = unknown>(url: string, data?: TReq, options?: ApiRequestOptions): Promise<TRes>;
|
|
15
|
+
delete<TRes>(url: string, options?: ApiRequestOptions): Promise<TRes>;
|
|
16
|
+
private request;
|
|
17
|
+
}
|
|
18
|
+
export declare const apiClient: ApiClient;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export class ApiClient {
|
|
2
|
+
options;
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.options = options;
|
|
5
|
+
}
|
|
6
|
+
extend(options) {
|
|
7
|
+
return new ApiClient({
|
|
8
|
+
...this.options,
|
|
9
|
+
...options
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async get(url, options) {
|
|
13
|
+
return this.request('GET', url, null, options);
|
|
14
|
+
}
|
|
15
|
+
async post(url, data, options) {
|
|
16
|
+
return this.request('POST', url, data, options);
|
|
17
|
+
}
|
|
18
|
+
async put(url, data, options) {
|
|
19
|
+
return this.request('PUT', url, data, options);
|
|
20
|
+
}
|
|
21
|
+
async delete(url, options) {
|
|
22
|
+
return this.request('DELETE', url, null, options);
|
|
23
|
+
}
|
|
24
|
+
async request(method, url, data, options) {
|
|
25
|
+
const finalUrl = (this.options?.baseURL || '') + url;
|
|
26
|
+
const init = { method };
|
|
27
|
+
if (data instanceof FormData) {
|
|
28
|
+
init.body = data;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
init.headers = { 'content-type': 'application/json' };
|
|
32
|
+
init.body = data ? JSON.stringify(data) : void 0;
|
|
33
|
+
}
|
|
34
|
+
const res = await fetch(finalUrl, init);
|
|
35
|
+
const [status, resData] = await Promise.all([res.status, res.json()]);
|
|
36
|
+
if ((status < 200 && status >= 300) || resData?.success !== true) {
|
|
37
|
+
return Promise.reject(resData);
|
|
38
|
+
}
|
|
39
|
+
return resData.data;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export const apiClient = new ApiClient({ baseURL: 'https://claim.tokentable.xyz/api' });
|
|
43
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/utils/api-client.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,SAAS;IACA;IAApB,YAAoB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAElD,MAAM,CAAC,OAAyB;QAC9B,OAAO,IAAI,SAAS,CAAC;YACnB,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAO,GAAW,EAAE,OAA2B;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAS,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI,CAAuB,GAAW,EAAE,IAAW,EAAE,OAA2B;QACpF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAS,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,GAAG,CAAuB,GAAW,EAAE,IAAW,EAAE,OAA2B;QACnF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAS,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,MAAM,CAAO,GAAW,EAAE,OAA2B;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAS,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAyC,EACzC,GAAW,EACX,IAAa,EACb,OAA2B;QAE3B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;QAErD,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,CAAC;QACrC,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAA0B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAS,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YACjE,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const safeParseJSON: (str: string) => any;
|
|
2
|
+
export declare const isBeforeByUnix: (unix: number) => boolean;
|
|
3
|
+
export declare const delay: (ms: number) => Promise<unknown>;
|
|
4
|
+
export declare function retry<T>(fn: () => Promise<T>, options: {
|
|
5
|
+
retries: number;
|
|
6
|
+
delay: number;
|
|
7
|
+
}): Promise<T>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
export const safeParseJSON = (str) => {
|
|
3
|
+
try {
|
|
4
|
+
return JSON.parse(str);
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
export const isBeforeByUnix = (unix) => {
|
|
11
|
+
return dayjs(new Date()).isBefore(dayjs.unix(unix), 'millisecond');
|
|
12
|
+
};
|
|
13
|
+
export const delay = (ms) => new Promise((res) => setTimeout(res, ms));
|
|
14
|
+
export async function retry(fn, options) {
|
|
15
|
+
let lastError;
|
|
16
|
+
for (let i = 0; i < options.retries; i++) {
|
|
17
|
+
try {
|
|
18
|
+
return await fn();
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
if (e instanceof Error) {
|
|
22
|
+
lastError = e;
|
|
23
|
+
}
|
|
24
|
+
await new Promise((resolve) => setTimeout(resolve, options.delay));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
throw lastError;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAO,EAAE;IAChD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;IAC7C,OAAO,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAoB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAEjG,MAAM,CAAC,KAAK,UAAU,KAAK,CAAI,EAAoB,EAAE,OAA2C;IAC9F,IAAI,SAA4B,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACvB,SAAS,GAAG,CAAC,CAAC;YAChB,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function flipAddressType(address: string): string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import TonWeb from 'tonweb';
|
|
2
|
+
export function flipAddressType(address) {
|
|
3
|
+
if (!address)
|
|
4
|
+
return '';
|
|
5
|
+
return address.includes(':')
|
|
6
|
+
? new TonWeb.utils.Address(address).toString(true, true, true)
|
|
7
|
+
: new TonWeb.utils.Address(address).toString(false, false, true);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=web3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web3.js","sourceRoot":"","sources":["../../../src/utils/web3.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC9D,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC"}
|
package/index.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TonWalletService } from './src/airdrop/services/wallet-service/ton/WalletService';
|
|
2
|
+
import { AirdropClient } from './src/airdrop';
|
|
3
|
+
import { ChainType } from './src/airdrop/types';
|
|
4
|
+
import { CHAIN } from '@tonconnect/ui-react';
|
|
5
|
+
|
|
6
|
+
console.log('Hello via Bun!');
|
|
7
|
+
|
|
8
|
+
const airdropClient = new AirdropClient({
|
|
9
|
+
// baseURL: 'http://ec2-3-89-178-45.compute-1.amazonaws.com:3030/api',
|
|
10
|
+
projectId: 'AD_pxPH2LcgWXgz',
|
|
11
|
+
chainType: ChainType.Ton
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
const claims = await airdropClient.fetchAirdropClaims({
|
|
15
|
+
address: 'UQB3bCGYQxF7-7u728yKQgMepCftbw4pirZoh0vjzHdELAHA'
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
console.log(claims);
|
|
19
|
+
|
|
20
|
+
const projects = airdropClient.getProjectList();
|
|
21
|
+
|
|
22
|
+
console.log(projects);
|
|
23
|
+
|
|
24
|
+
// const isClaimed = await airdropClient.checkClaimed('AD_6oYIAQzOCWaK-75');
|
|
25
|
+
|
|
26
|
+
// console.log(isClaimed);
|
|
27
|
+
|
|
28
|
+
const balance = await TonWalletService.fetchBalance({
|
|
29
|
+
chainId: CHAIN.TESTNET,
|
|
30
|
+
address: '0QANAsrLyyHoq8N4EZ-QfADXhtoSUybdSKXOknMLWLbA7gDx',
|
|
31
|
+
token: 'kQDg-lZ_gEZUb1MCjOpgemMSnLRZMVIUVMJxpoev7rmv1UKy'
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
console.log(balance);
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sign-global/tokentable",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"description": "tokentable sdk",
|
|
8
|
+
"main": "dist/cjs/index.js",
|
|
9
|
+
"module": "dist/esm/index.js",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build-cjs": "tsc -m commonjs --outDir dist/cjs",
|
|
13
|
+
"build-esm": "tsc -m esnext --outDir dist/esm",
|
|
14
|
+
"build": "pnpm run build-cjs && pnpm run build-esm"
|
|
15
|
+
},
|
|
16
|
+
"author": "Evan",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@orbs-network/ton-access": "^2.3.3",
|
|
20
|
+
"@ton/core": "^0.59.0",
|
|
21
|
+
"@ton/ton": "^15.1.0",
|
|
22
|
+
"@tonconnect/ui-react": "^2.0.9",
|
|
23
|
+
"bignumber.js": "^9.1.2",
|
|
24
|
+
"dayjs": "^1.11.13",
|
|
25
|
+
"tonapi-sdk-js": "^2.0.3",
|
|
26
|
+
"tonweb": "^0.0.66",
|
|
27
|
+
"viem": "^2.21.49",
|
|
28
|
+
"wagmi": "^2.13.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"bun-types": "latest",
|
|
32
|
+
"typescript": "^5.6.3"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { getAirdropProject, getAirdropProjectId, getAirdropQuery } from './services';
|
|
2
|
+
import {
|
|
3
|
+
BaseAirdropOptions,
|
|
4
|
+
ChainType,
|
|
5
|
+
ContractWrapperOptions,
|
|
6
|
+
IAirdropClaim,
|
|
7
|
+
IAirdropService,
|
|
8
|
+
IProject,
|
|
9
|
+
IWalletClient
|
|
10
|
+
} from './types';
|
|
11
|
+
|
|
12
|
+
export abstract class BaseAirdropClient {
|
|
13
|
+
protected endpoint?: string;
|
|
14
|
+
protected projectId?: string;
|
|
15
|
+
protected claims?: IAirdropClaim[];
|
|
16
|
+
protected projects?: IProject[];
|
|
17
|
+
|
|
18
|
+
constructor(params: BaseAirdropOptions) {
|
|
19
|
+
this.endpoint = params.endpoint;
|
|
20
|
+
this.projectId = params.projectId;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
abstract getAirdropContractWrapper(options: ContractWrapperOptions): IAirdropService | undefined;
|
|
24
|
+
|
|
25
|
+
async fetchAirdropProjectIds(data: { recipient: string; slug: string }) {
|
|
26
|
+
const res = await getAirdropProjectId(data, this.endpoint);
|
|
27
|
+
return res;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
protected async initializeProjects(address: string) {
|
|
31
|
+
const projectIds: string[] = this.projectId ? [this.projectId] : [];
|
|
32
|
+
this.projects = await Promise.all(projectIds.map(async (projectId) => getAirdropProject(projectId, this.endpoint)));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async fetchAirdropClaims(data: { address: string }) {
|
|
36
|
+
if (!this.projects) {
|
|
37
|
+
await this.initializeProjects(data.address);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (!this.projects?.length) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const claimsRes = await Promise.all(
|
|
45
|
+
this.projects.map(async (project) => {
|
|
46
|
+
const res = await getAirdropQuery(
|
|
47
|
+
{
|
|
48
|
+
recipient: data.address,
|
|
49
|
+
projectId: project.id,
|
|
50
|
+
recipientType: project.recipientType
|
|
51
|
+
},
|
|
52
|
+
this.endpoint
|
|
53
|
+
);
|
|
54
|
+
return res.claims?.map((it) => ({
|
|
55
|
+
...it,
|
|
56
|
+
project: project,
|
|
57
|
+
claimId: project.chainType === ChainType.Evm ? `${project.id}:${it.leaf}` : `${project.id}:${it.index}`
|
|
58
|
+
}));
|
|
59
|
+
})
|
|
60
|
+
);
|
|
61
|
+
this.claims = claimsRes.flat();
|
|
62
|
+
return this.claims;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
getProjectList() {
|
|
66
|
+
return this.projects;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
abstract claimAirdrop(
|
|
70
|
+
params: { claimId: string; walletClient: IWalletClient },
|
|
71
|
+
options: { onLoading?: () => void }
|
|
72
|
+
): Promise<unknown>;
|
|
73
|
+
|
|
74
|
+
abstract checkClaimed(claimId: string): Promise<boolean>;
|
|
75
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { BaseAirdropClient } from './BaseAirdropClient';
|
|
2
|
+
import { ChainId, EvmContractWrapperOptions } from './types';
|
|
3
|
+
import { AirdropService as EvmAirdropService } from './core/evm/AirdropService';
|
|
4
|
+
import { WalletClient as ViemWalletClient } from 'viem';
|
|
5
|
+
|
|
6
|
+
export class EvmAirdropClient extends BaseAirdropClient {
|
|
7
|
+
private contractInstances = new Map<string, EvmAirdropService>();
|
|
8
|
+
getAirdropContractWrapper(options: EvmContractWrapperOptions): EvmAirdropService {
|
|
9
|
+
const instanceKey = `${options.chainId}:${options.contractAddress}`;
|
|
10
|
+
if (!this.contractInstances.has(instanceKey)) {
|
|
11
|
+
const instance = new EvmAirdropService({
|
|
12
|
+
contractAddress: options.contractAddress,
|
|
13
|
+
chainId: Number(options.chainId) as ChainId,
|
|
14
|
+
walletClient: options.walletClient as ViemWalletClient
|
|
15
|
+
});
|
|
16
|
+
this.contractInstances.set(instanceKey, instance);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return this.contractInstances.get(instanceKey)!;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private getClaimDataById(claimId: string) {
|
|
23
|
+
const claimData = this.claims?.find((it) => it.claimId === claimId);
|
|
24
|
+
if (!claimData) throw new Error('Claim data not found');
|
|
25
|
+
return claimData;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async claimAirdrop({ claimId, walletClient }: { claimId: string; walletClient: ViemWalletClient }) {
|
|
29
|
+
const claimData = this.getClaimDataById(claimId);
|
|
30
|
+
|
|
31
|
+
const contractWrapper = this.getAirdropContractWrapper({
|
|
32
|
+
chainId: claimData.project.chainId as ChainId,
|
|
33
|
+
contractAddress: claimData.project.contractAddress,
|
|
34
|
+
walletClient
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
return contractWrapper.claim(claimData);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async checkClaimed(claimId: string): Promise<boolean> {
|
|
41
|
+
const claimData = this.getClaimDataById(claimId);
|
|
42
|
+
|
|
43
|
+
const contractWrapper = this.getAirdropContractWrapper({
|
|
44
|
+
chainId: Number(claimData.project.chainId) as ChainId,
|
|
45
|
+
contractAddress: claimData.project.contractAddress
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
return contractWrapper.isLeafUsed(claimData.leaf);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async batchFetchClaimed(leafs: string[]) {
|
|
52
|
+
const claimData = this.claims?.[0];
|
|
53
|
+
if (!claimData) throw new Error('Claim data not found');
|
|
54
|
+
|
|
55
|
+
const contractWrapper = this.getAirdropContractWrapper({
|
|
56
|
+
chainId: Number(claimData.project.chainId) as ChainId,
|
|
57
|
+
contractAddress: claimData.project.contractAddress
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
return contractWrapper.batchFetchClaimed(leafs);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
async getClaimFee(amount: bigint) {
|
|
64
|
+
const claimData = this.claims?.[0];
|
|
65
|
+
if (!claimData) throw new Error('Claim data not found');
|
|
66
|
+
|
|
67
|
+
const contractWrapper = this.getAirdropContractWrapper({
|
|
68
|
+
chainId: Number(claimData.project.chainId) as ChainId,
|
|
69
|
+
contractAddress: claimData.project.contractAddress
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
return contractWrapper.getClaimFee(claimData.project.contractAddress, amount);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { TonClient } from '@ton/ton';
|
|
2
|
+
import { BaseAirdropClient } from './BaseAirdropClient';
|
|
3
|
+
import { TonConnectUI } from '@tonconnect/ui-react';
|
|
4
|
+
import { AirdropService as TonAirdropService } from './core/ton/AirdropService';
|
|
5
|
+
import { getAirdropPro, getAirdropProject } from './services';
|
|
6
|
+
import { ChainId, TonAirdropOptions, TonContractWrapperOptions } from './types';
|
|
7
|
+
import { getTonProjectIdByAddress } from './common';
|
|
8
|
+
|
|
9
|
+
export class TonAirdropClient extends BaseAirdropClient {
|
|
10
|
+
private tonClient?: TonClient;
|
|
11
|
+
private slug?: string;
|
|
12
|
+
private contractInstances = new Map<string, TonAirdropService>();
|
|
13
|
+
|
|
14
|
+
constructor(params: TonAirdropOptions) {
|
|
15
|
+
super(params);
|
|
16
|
+
if ('slug' in params) {
|
|
17
|
+
this.slug = params.slug;
|
|
18
|
+
}
|
|
19
|
+
this.tonClient = params.tonClient;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
protected async initializeProjects(address: string) {
|
|
23
|
+
let projectIds: string[] = this.projectId ? [this.projectId] : [];
|
|
24
|
+
if (this.slug) {
|
|
25
|
+
const res = await getAirdropPro(this.slug, this.endpoint);
|
|
26
|
+
const projectMap = res?.childProjectMapping;
|
|
27
|
+
const legacyProjectId = getTonProjectIdByAddress({ address, slug: this.slug, data: projectMap });
|
|
28
|
+
|
|
29
|
+
if (legacyProjectId) {
|
|
30
|
+
projectIds = [...projectIds, legacyProjectId];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
this.projects = await Promise.all(projectIds.map(async (projectId) => getAirdropProject(projectId, this.endpoint)));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
getAirdropContractWrapper(options: TonContractWrapperOptions): TonAirdropService {
|
|
37
|
+
const instanceKey = `${options.chainId}:${options.contractAddress}`;
|
|
38
|
+
|
|
39
|
+
if (!this.contractInstances.has(instanceKey)) {
|
|
40
|
+
const instance = new TonAirdropService({
|
|
41
|
+
chainId: options.chainId.toString(),
|
|
42
|
+
address: options.contractAddress,
|
|
43
|
+
walletClient: options.walletClient as TonConnectUI,
|
|
44
|
+
tonClient: this.tonClient
|
|
45
|
+
});
|
|
46
|
+
this.contractInstances.set(instanceKey, instance);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return this.contractInstances.get(instanceKey)!;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private getClaimDataById(claimId: string) {
|
|
53
|
+
const claimData = this.claims?.find((it) => it.claimId === claimId);
|
|
54
|
+
if (!claimData) throw new Error('Claim data not found');
|
|
55
|
+
return claimData;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async claimAirdrop(
|
|
59
|
+
{ claimId, walletClient }: { claimId: string; walletClient: TonConnectUI },
|
|
60
|
+
options: { onLoading?: () => void }
|
|
61
|
+
) {
|
|
62
|
+
const claimData = this.getClaimDataById(claimId);
|
|
63
|
+
|
|
64
|
+
const contractWrapper = this.getAirdropContractWrapper({
|
|
65
|
+
chainId: claimData.project.chainId as ChainId,
|
|
66
|
+
contractAddress: claimData.project.contractAddress,
|
|
67
|
+
walletClient
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
return contractWrapper.claim(claimData, options);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async checkClaimed(claimId: string): Promise<boolean> {
|
|
74
|
+
const claimData = this.getClaimDataById(claimId);
|
|
75
|
+
|
|
76
|
+
const contractWrapper = this.getAirdropContractWrapper({
|
|
77
|
+
chainId: claimData.project.chainId as ChainId,
|
|
78
|
+
contractAddress: claimData.project.contractAddress,
|
|
79
|
+
tonClient: this.tonClient
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
return contractWrapper.checkClaimed(claimData);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async getPaused({ contractAddress, chainId }: { contractAddress: string; chainId: string }) {
|
|
86
|
+
const contractWrapper = this.getAirdropContractWrapper({
|
|
87
|
+
chainId: chainId as ChainId,
|
|
88
|
+
contractAddress,
|
|
89
|
+
tonClient: this.tonClient
|
|
90
|
+
});
|
|
91
|
+
return contractWrapper.getPaused();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ChainConfig, SupportedChains } from '../constants';
|
|
2
|
+
import { ChainId } from '../types';
|
|
3
|
+
import { projectDataForTon } from './projectDataForTon';
|
|
4
|
+
|
|
5
|
+
export function getChainById(chainId: ChainId) {
|
|
6
|
+
const chain = SupportedChains.find((chain) => chain.id === chainId);
|
|
7
|
+
|
|
8
|
+
if (!chain) {
|
|
9
|
+
throw new Error(`ChainId ${chainId} not supported.`);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return chain;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function getChainConfig(chainId: ChainId) {
|
|
16
|
+
return ChainConfig[chainId];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function getChainRpc(chainId: ChainId): string {
|
|
20
|
+
const config = getChainConfig(chainId as any);
|
|
21
|
+
|
|
22
|
+
if (!config) {
|
|
23
|
+
throw new Error(`ChainId ${chainId} not supported.`);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return config?.rpcUrl;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const getTonProjectIdByAddress = ({
|
|
30
|
+
address,
|
|
31
|
+
slug,
|
|
32
|
+
data
|
|
33
|
+
}: {
|
|
34
|
+
address: string;
|
|
35
|
+
slug: string;
|
|
36
|
+
data: Record<string, string>;
|
|
37
|
+
}): string | undefined => {
|
|
38
|
+
let project: Record<string, string> = projectDataForTon[slug as keyof typeof projectDataForTon];
|
|
39
|
+
if (!project) {
|
|
40
|
+
project = data;
|
|
41
|
+
}
|
|
42
|
+
const lastText = address[address.length - 1];
|
|
43
|
+
|
|
44
|
+
const group = Object.keys(project || {}).find((key) => key.includes(lastText));
|
|
45
|
+
|
|
46
|
+
const projectId = group ? project[group as keyof typeof project] : undefined;
|
|
47
|
+
|
|
48
|
+
return projectId;
|
|
49
|
+
};
|